黑马程序员技术交流社区

标题: 关于注释里的值的覆写与打印的问题 [打印本页]

作者: 苏伯亚    时间: 2014-4-1 09:33
标题: 关于注释里的值的覆写与打印的问题
这是对注释的定义:
package cn.itcast.day2;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface ItcastAnnotation {
        String color() default "blue";
        String value();
}
这是对注释的打印
package cn.itcast.day2;
@ItcastAnnotation(color="red",value="abc")
public class AnnotationTest {
        /**
         * @param args
         */

        @ItcastAnnotation("xyz")
        public static void main(String[] args)throws Exception {
                // TODO Auto-generated method stub

                if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
                        ItcastAnnotation annotation=(ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
                        System.out.println(annotation.color());
                        System.out.println(annotation.value());
                                }}

下面打印注释里面的value值 我一开始赋值是“abc,在方法里赋值“xyz,为什么打印的是abc 而不是xyz?难道在方法里面的赋值不能写到注释里?既然不能写到注释了那为什么有没有报错?
求懂得解释一下。


作者: osully    时间: 2014-4-1 09:43
AnnotationTest.class.getAnnotation 是这个字节码文件的注释

如果要方法的,去调用method的getAnnotation吧




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