注解代码

来源:互联网 发布:焊接机械手编程 编辑:程序博客网 时间:2024/06/05 16:08
package cn.itcast.day2;
//注解属性赋值
@ItcastAnnotation(annotationAttr=@MetaAnnotation("flx"),value="abc",color="red",arrayAttr={1,2,3,4})
public class AnnotationTest {
/**
* @param args
*/
//@ItcastAnnotation
public static void main(String[] args)throws Exception {
//利用反射检查是否存在注解
if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation = (ItcastAnnotation)AnnotationTest.class.getAnnotation(ItcastAnnotation.class);
System.out.println(annotation.color());
System.out.println(annotation.value());
System.out.println(annotation.arrayAttr().length);
System.out.println(annotation.lamp().nextLamp());
System.out.println(annotation.annotationAttr().value());


}
}

}



package cn.itcast.day2;


import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
//元注解@Retention用以标记注解运行在什么阶段
//@Retention元注解的讲解,其三种取值:RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME;
//分别对应:java源文件-->class文件-->内存中的字节码。
import java.lang.annotation.Target;


import cn.itcast.day1.EnumTest;
@Retention(RetentionPolicy.RUNTIME)//使注解保存到运行阶段


//@Target作用,用以标记注解可以用在那个成分上
@Target({ElementType.METHOD,ElementType.TYPE})
public @interface ItcastAnnotation {
//为注解添加属性
String color() default "blue";//定义时直接初始化
String value();
int[] arrayAttr() ;
//属性为枚举
EnumTest.TrafficLamp lamp() default EnumTest.TrafficLamp.RED;
//属性为注解
MetaAnnotation annotationAttr() default @MetaAnnotation("asdf");


}



package cn.itcast.day2;


public @interface MetaAnnotation {
String value();
}




分享一下我的学习资料!!!!
Java全套顶级视频
http://pro.net.itcast.cn/View-22-1435.aspx
DotNet全套视频
http://pro.net.itcast.cn/View-23-1435.aspx
PHP全套视频
http://pro.net.itcast.cn/View-24-1435.aspx
全世界最适合0基础学习编程的网上校园
http://pro.net.itcast.cn/View-25-1435.aspx
免费申请java全套视频光盘区域
http://pro.net.itcast.cn/View-26-1435.aspx