您的位置:首页 > 其它

自定义annotation的运行时动态加载

2008-09-05 12:31 155 查看
需要使用Java的反射机制才能实现。演示代码如下:

AnnotationDemo.java

package demo.annotation;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)

public @interface AnnotationDemo {

public String value();

}

AnnotationUsage.java

package demo.annotation;

public class AnnotationUsage {

@AnnotationDemo(value="hello world")

public void method(String value)

{

System.out.println(value);

}

}

AnnotationTest.java

package demo.annotation;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

public class AnnotationTest {

public static void main(String[] args) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException {

Method[] methods = AnnotationUsage.class.getDeclaredMethods();

for (Method method : methods) {

if (method.isAnnotationPresent(AnnotationDemo.class)) {

AnnotationDemo annotationTest = method.getAnnotation(AnnotationDemo.class);

method.setAccessible(true);

method.invoke(new AnnotationUsage(), annotationTest.value());

}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: