黑马程序员技术交流社区

标题: 崩溃了,老是碰到和老师一样的代码,却不一样的结果 [打印本页]

作者: BitmapFactory    时间: 2013-3-1 23:41
标题: 崩溃了,老是碰到和老师一样的代码,却不一样的结果
本帖最后由 张学林 于 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. }
复制代码

作者: 唐长智    时间: 2013-3-2 00:57
亲,你出心大意了{: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. }
复制代码

作者: BitmapFactory    时间: 2013-3-2 07:17
{:soso_e134:}多谢了啊,我找了一个多小时也没找出来,类似的问题还是刚好在前面的视频里老师提到过{:soso_e136:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2