今天写了一个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文件的生成时间大于源码的最后修改时间,所以没有重新编译。
自己把自己坑了!
本文介绍了一种在MyEclipse中遇到的注解未能正确加载的问题及其解决方案。作者通过排查发现,由于系统时间被修改导致IDE未识别到源文件的变化,从而未触发重新编译。
520

被折叠的 条评论
为什么被折叠?



