黑马程序员技术交流社区

标题: 关于注解的问题 [打印本页]

作者: 郭军亮    时间: 2013-5-1 12:01
标题: 关于注解的问题
我定义的注解是这样的
  1. package edu.ay.day2;
  2. import java.lang.annotation.*;

  3. @Retention(RetentionPolicy.RUNTIME)
  4. @Target(ElementType.METHOD)
  5. public @interface AnnotationDemo {
  6.       String color() default "blue";
  7.       String value();
  8. }
复制代码
下面这个程序:
  1. package edu.ay.day2;

  2. import java.lang.annotation.Annotation;


  3. public class Annotationtest {

  4.         /**
  5.          * @param args
  6.          */
  7.         @AnnotationDemo("gjljgld")
  8.         public static void main(String[] args)throws Exception {
  9.                 // TODO Auto-generated method stub
  10.                 System.out.println(Annotationtest.class.isAnnotationPresent(AnnotationDemo.class));//<font color="#ff0000">为什么这儿输出时false呢</font>
  11.                 if(Annotationtest.class.isAnnotationPresent(AnnotationDemo.class)){
  12.                      AnnotationDemo ann = (AnnotationDemo)Annotationtest.class.getAnnotation(AnnotationDemo.class);
  13.                      System.out.println(ann.color());
  14.                      System.out.println(ann.value());
  15.                 }
  16.         }

  17. }
复制代码

作者: 郭军亮    时间: 2013-5-1 14:40
<font color="#ff0000">为什么这儿输出时false呢</font>这个你理解错意思了,我是想问 System.out.println(Annotationtest.class.isAnnotationPresent(AnnotationDemo.class))为什么输出的是false呢?
作者: cowthan    时间: 2013-5-1 17:53
Annotationtest这个类也没注解啊,所以返回false,你的注解加在函数上了,应该通过Method来访问
作者: 郭军亮    时间: 2013-5-1 19:13
请问一下如何通过Method来访问呢?




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