package cn.itcast.day2;
//在使用注解实例时就要为注解中的属性赋值,以及数组属性赋值的方法,在加上为注解类型的属性赋值
@ItcastAnnotation(color="red",value="sfwe",arrayAtrr={1,2,3},annotation1=@MetaAnnotation("ifuh"))//声明:除value以外,其他属性都有默认值。这里在类直接里为value设值了。
public class AnnotationTest {
/**
* @param args
*/
//只需给value属性赋值时,就不用写属性名value了
@ItcastAnnotation("sfgewg")//在方法的注解中也为value赋值了
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());
//查看value属性
System.out.println(annotation.value());//这里的结果为类注解的value属性的值。
//查看数组属性
System.out.println(annotation.arrayAtrr().length);
//查看枚举属性
System.out.println(annotation.lamp().nextLamp().name());
//查看注解属性
System.out.println(annotation.annotation1().value());
}
}
}
我的问题是:一个即能放在类上也能放在方法上的注解,在类上使用了该注解并为属性赋了值,在方法上也用了该注解也赋了值。那么查看该注解属性的值时,为什么是类上的注解的值??有什么方法可查看方法上的注解的值呢????
|