首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java注解(上)

2012-12-18 
java注解(下)?为注解增加基本属性:?什么是注解的属性:一个注解就相当于一个胸卡,如果胸前贴了胸卡,就是该

java注解(下)

?

为注解增加基本属性:

?

什么是注解的属性:一个注解就相当于一个胸卡,如果胸前贴了胸卡,就是该单位的员工,否则就不是。如果还想区分是该公司里哪个部门的员工,这时候可以为胸卡再增加一个属性来进行区分

加了属性的标记效果为:@MyAnnotation(department="development")

?

定义属性

---------------------

@Retention(RetentionPolicy.RUNTIME)??//指定注解生命周期
@Target({ElementType.METHOD,ElementType.TYPE})??//指定注解作用的范围
public @interface MyAnnotation {
?String color() default "bule";
?String value(); //特殊方法,当只有一个属性时,不用写value =
?int[] arrayAttr() default {3,4,5};
?//返回枚举类型的
?EnumTest.TrafficLamp lamp() default EnumTest.TrafficLamp.RED;
?//返回Annotation类型
?MetaAnnotation annotationAttr() default @MetaAnnotation("abc");
}

---------------------

?

应用属性

---------------------

@MyAnnotation(annotationAttr=@MetaAnnotation("bbb") ,color="red",value="abc",arrayAttr={1,2,3})
public class AnnotationTest {

??public static void main(String[] args) {
??if(AnnotationTest.class.isAnnotationPresent(MyAnnotation.class)){ //哪个注解在不在
???MyAnnotation annotation = AnnotationTest.class.getAnnotation(MyAnnotation.class);
???System.out.println(annotation.color());
???System.out.println(annotation.value());
???System.out.println(annotation.arrayAttr().length);
???System.out.println(annotation.lamp().nextLamp().name()); //输出枚举元素的名
???System.out.println(annotation.annotationAttr().value());
??}
?}

---------------------

?

定义属性可以为:

8个基本类型,String??、Class类型、枚举类型、注解类型、还可以是前面这些类型的数组

热点排行