今天写了一个Annotation
该annotation添加到方法上,通过反射获取总是得不到。
按道理,@Retention的取值是RetentionPolicy.RUNTIME了,不应该出问题了。
然后又检查反射的调用Method的方法
1、getAnnotation(Class<T> annotationClass) //此方法用于获取当前元素上指定类型的annotation
2、getDeclaredAnnotations() 获取当前元素上所有的annotation
以上都没有问题。
反编译class,看到对应的方法上并没有该annotation。然后重启MyEclipse,重新编译
经过半个多小时的折腾。
原因是:之前调试其他问题,下午将系统时间修改成昨天了。
应该是MyEclipse发现class文件的生成时间大于源码的最后修改时间,所以没有重新编译。
自己把自己坑了!
@Target(value = {ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface A{
String propertyMapping();
B valueType();
}
,
该annotation添加到方法上,通过反射获取总是得不到。
按道理,@Retention的取值是RetentionPolicy.RUNTIME了,不应该出问题了。
然后又检查反射的调用Method的方法
1、getAnnotation(Class<T> annotationClass) //此方法用于获取当前元素上指定类型的annotation
2、getDeclaredAnnotations() 获取当前元素上所有的annotation
以上都没有问题。
反编译class,看到对应的方法上并没有该annotation。然后重启MyEclipse,重新编译
经过半个多小时的折腾。
原因是:之前调试其他问题,下午将系统时间修改成昨天了。
应该是MyEclipse发现class文件的生成时间大于源码的最后修改时间,所以没有重新编译。
自己把自己坑了!