您的位置:首页 > 编程语言 > Java开发

java 之 注解Annotation学习示例

2012-02-21 18:25 706 查看
package com.ethan.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

//元注解
/*
* 元信息 ====》信息的信息
*
* 注解给编译器看的,生命周期就是CLASS
* SOURCE==源文件,CLASS==class文件,RUNTIME==内存中的字节码
*
* @SupperssWarnings SOURCE
* @Deprecated RUNTIME,调到内存中后,检查二进制
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface EthanAnnotation {
String color() default "red";
String value() default "";
int[] arrayAttr() default {};
MetaAnnotation annotationAttr() default @MetaAnnotation("xxx");

Class clazz() default Object.class;
}

package com.ethan.annotation;

public @interface MetaAnnotation {
String value();
}


package com.ethan.annotation;

@EthanAnnotation(annotationAttr=@MetaAnnotation("yxy"),color="blue",arrayAttr=1,clazz=String.class)
public class AnnotationTest {

/**
* set path=c:\...;%path%;
* @param args
*/
@EthanAnnotation(color="red",arrayAttr={1,2,3})
public static void main(String[] args) {
if(AnnotationTest.class.isAnnotationPresent(EthanAnnotation.class)) {
EthanAnnotation annotation = AnnotationTest.class.getAnnotation(EthanAnnotation.class);
System.out.println(annotation.color());
System.out.println(annotation.arrayAttr().length);
System.out.println(annotation.annotationAttr().value());
System.out.println(annotation.clazz().getName());
};
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: