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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张学林 于 2013-3-20 10:01 编辑



大家帮我看看啊,这是什么原因
  1. package cn.itcast.day2;

  2. public class AnnotationTest {

  3.         /**
  4.          * @param args
  5.          */
  6.         @ItcastAnnotation
  7.         public static void main(String[] args) {

  8.                 System.runFinalizersOnExit(true);
  9.                 System.out.println(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class));//为啥后面加了@Retention(RetentionPolicy.RUNTIME)却还是false很是肺解
  10.                 if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
  11.                         ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
  12.                         System.out.println(annotation);
  13.                 }
  14.         }
  15.         
  16.         @Deprecated
  17.         public static void sayHello(){
  18.                
  19.                 System.out.println("hi,你好");
  20.         }

  21. }
复制代码
下面是类注解的
  1. package cn.itcast.day2;

  2. import java.lang.annotation.Retention;
  3. import java.lang.annotation.RetentionPolicy;

  4. @Retention(RetentionPolicy.RUNTIME)
  5. public @interface ItcastAnnotation {

  6. }
复制代码

评分

参与人数 1黑马币 +6 收起 理由
黄玉昆 + 6 要细心哦

查看全部评分

2 个回复

倒序浏览
亲,你出心大意了{:soso_e101:},上面代码中的第12行AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class),这里写着.class.但是你的类上面却没有加上注释,所以,结果一定是false了。在类的上面加上注释,就迎刃而解了。
  1. package cn.itcast.day2;
  2. @ItcastAnnotation
  3. public class AnnotationTest {

  4.         /**
  5.          * @param args
  6.          */
  7.         @ItcastAnnotation
  8.         public static void main(String[] args) {

  9.                 System.runFinalizersOnExit(true);
  10.                 System.out.println(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class));//为啥后面加了@Retention(RetentionPolicy.RUNTIME)却还是false很是肺解
  11.                 if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
  12.                         ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
  13.                         System.out.println(annotation);
  14.                 }
  15.         }
  16.         
  17.         @Deprecated
  18.         public static void sayHello(){
  19.                
  20.                 System.out.println("hi,你好");
  21.         }

  22. }
复制代码

点评

多谢了,帮了个大忙  发表于 2013-3-2 07:18
回复 使用道具 举报
{:soso_e134:}多谢了啊,我找了一个多小时也没找出来,类似的问题还是刚好在前面的视频里老师提到过{:soso_e136:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马