首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

简略利用java反射 理解注解的作用

2012-12-20 
简单利用java反射 理解注解的作用在新版框架中 都加入了 注解大大减少了xml配置的臃肿。??新建注解?@Retent

简单利用java反射 理解注解的作用

在新版框架中 都加入了 注解大大减少了xml配置的臃肿。

?

?

新建注解

?

@Retention(RetentionPolicy.RUNTIME)public @interface NewHelloWord {            ?public String value() default "hello";}

?

通过反射 实现方法调用前后 注解的功能。

?

public class Parser {public void parse(Object obj, String methodName) {Method[] ms = obj.getClass().getMethods();for (Method m : ms) {if (m.getName().equals(methodName)) {                                    该类是否使用了注解                                   ?if (m.isAnnotationPresent(NewHelloWord.class)) {                                           获取注解                                         ?NewHelloWord hw = m.getAnnotation(NewHelloWord.class);//System.out.println(hw.value());try {System.out.println(hw.value() + " before...");m.invoke(obj, new Object[] {});System.out.println(hw.value() + " after...");} catch (Exception e) {e.printStackTrace();}}}}}}

?

?

? 测试bean 使用了注解

@NewHelloWordpublic class TestBean {public TestBean(String name) {this.name = name;}@NewHelloWord("你好")private String name;@Override@NewHelloWordpublic String toString() {System.out.println(this.name);return this.name;}}

?

?

测试

?

public class MainTest {/** * @param args */public static void main(String[] args) {TestBean tb = new TestBean("abcd");Parser p = new Parser();p.parse(tb, "toString");}}

?

?

最后输出

?

hello before...
abcd
hello after...

热点排行