A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘凯 金牌黑马   /  2013-3-23 11:12  /  1239 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘凯 于 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    这个是什么问题  求大神指教
}

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

1 个回复

倒序浏览
@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
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马