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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苏伯亚 中级黑马   /  2014-4-1 09:33  /  781 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这是对注释的定义:
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?难道在方法里面的赋值不能写到注释里?既然不能写到注释了那为什么有没有报错?
求懂得解释一下。

1 个回复

倒序浏览
AnnotationTest.class.getAnnotation 是这个字节码文件的注释

如果要方法的,去调用method的getAnnotation吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马