黑马程序员技术交流社区
标题:
关于注解的反射得到该注解的一个问题
[打印本页]
作者:
刘凯
时间:
2013-3-23 11:12
标题:
关于注解的反射得到该注解的一个问题
本帖最后由 刘凯 于 2013-3-23 19:14 编辑
基础加强注解那一段 我自个试探出一个问题 如下
我自定义了一个注解ItcastAnnotation
@Retention(RetentionPolicy.RUNTIME) //注解的生命周期持续到 RUNTIME 阶段
@Target({ElementType.METHOD,ElementType.TYPE})//使得该注解作用范围为 类上 和方法上
public @interface ItcastAnnotation {
}
问题来了
当我将和注解作用在一个类上边时
@ItcastAnnotation
public class AnnotationTest {
....
public static void main(String[] args)throws Exception {
if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
System.out.println(annotation);
}
//用上编代码去验证这个类上边是否有这个ItcastAnnotation 注解 如果有 打印该注解 运行结果为@cn.itcast.day2.ItcastAnnotation() 说明有这个注解
}
然而当我将这个注解作用到这个类的一个方法上时 如下
public class AnnotationTest {
....
@ItcastAnnotation //作用到这个类的test方法上
public static void test(){
}
public static void main(String[] args)throws Exception {
if(AnnotationTest.class.getMethod("test").isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getMethod("test").getAnnotation(ItcastAnnotation.class);
System.out.println(annotation);
}
//用上编代码去验证这个类中这个方法是否有这个 ItcastAnnotation 注解 如果有 打印该注解 运行结果为null 这个是什么问题 求大神指教
}
作者:
谢洋
时间:
2013-3-23 12:14
@ItcastAnnotation //作用到这个类的test方法上
public static void test(){
}
public static void main(String[] args)throws Exception {
if(AnnotationTest.class.getMethod("test").isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getMethod("test").getAnnotation(ItcastAnnotation.class);
System.out.println(annotation);
}
//用上编代码去验证这个类中这个方法是否有这个 ItcastAnnotation 注解 如果有 打印该注解 运行结果为null 这个是什么问题 求大神指教
}
我试了一下,打印结果不是null
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2