注解

  • 注解
    • 特殊注释,给编译器和jvm读取,让编译器为我们做检查
    • 属性,修饰符,可以修饰方法,类,属性,等,具体的看注解的修饰范围限定
    • 内置注解
      • @Override 告诉编译器做检测,它所修饰的方法是否满足方法覆盖的条件,标记性注解
      • @deprecated 提醒使用者,它修饰的目标将要被删除,在这里不建议使用(过时了),可以修饰类,属性,构造器,方法,形参,局部变量,标记性注解
      • @SuppressWarnings({"unused", "null"}),抑制警告,需要传参表明那种类型的警告
    • 自定义注解
      • @interface MyAnnotation{}
      • @interface MyAnnotation{ public String name(); public age();}属性
      • @interface MyAnnotation
      • 可以写注解的注解(原注解)
      • Target(),原注解,规定注解使用范围,即注解的注解
        1. TYPE 可以修饰类
        2. FIELD 可以修饰属性
        3. METHOD 可以修饰方法
        4. CONSTRUCTOR 可以修饰构造器
      • Retention() 作用是约束注解的停留期
        • SOURCE 只能停留在源码中,生成class中没有
        • CLASS 可以停留在class文件,但运行时不能反射
        • RetentionPolicy.RUNTIME,可以停留在运行时并运行处理
//自定义注解举例
//自定义注解,没有规定其使用范围,没有规定其声明周期
@interface HelloAnnotation{
	
}

@HelloAnnotation
public class Student {
	@HelloAnnotation
	private String name;
	@HelloAnnotation
	public Student(String name) {
		//@HelloAnnotation
		super();
		//@HelloAnnotation
		this.name = name;
	}
	@HelloAnnotation
	public void hello() {
		//@HelloAnnotation
		System.out.println("hello!");
	}
}
posted @ 2018-11-18 17:59  热风轻浮  阅读(80)  评论(0编辑  收藏  举报