概述
注解与注释,
注解,告诉编译器如何运行程序!
注释, 给程序员阅读,对编译、运行没有影响;
注解作用:
1.告诉编译器如何运行程序;
2. 简化(取代)配置文件
// 重写父类的方法
@Override
public String toString() {
return super.toString();
}
// 抑制编译器警告
@SuppressWarnings({"unused","unchecked"})
private void save() {
List list = null;
}
// 标记方法以及过时
@Deprecated
private void save1() {
}
自定义注解:
通过自定义注解,可以给类、字段、方法上添加描述信息!
注解的基本写法:
public @interface Author {
/**
* 注解属性
* 1. 修饰为默认或public
* 2. 不能有主体
*/
String name();
int age();
}
使用
@Author(name = "evan_qb", age = 21)
public void save() {
}
带默认值的注解:
public @interface Author {
/**
* 注解属性
* 1. 修饰为默认或public
* 2. 不能有主体
*/
String name();
int age() default 21; // 带默认值的注解; 使用的时候就可以不写此属性值
默认名称的注解:
注解属性名称为value,这就是默认名称
public @interface Author {
// 如果注解名称为value,使用时候可以省略名称,直接给值
// (且注解只有一个属性时候才可以省略名称)
String value();
}
使用:
@Author("evan_qb")
@Author(value = "evan_qb")
注解属性类型为数组:
public @interface Author {
String[] value() default {"test1","test2"};
}
使用
@Author({"",""})
public void save() {
}
元注解:
元注解,表示注解的注解!
指定注解的可用范围:
@Target({
TYPE, 类
FIELD, 字段
METHOD, 方法
PARAMETER, 参数
CONSTRUCTOR, 构造器
LOCAL_VARIABLE 局部变量
})
元注解 - 2. 指定注解的声明周期
@Retention(RetentionPolicy.SOURCE) 注解只在源码级别有效
@Retention(RetentionPolicy.CLASS) 注解在字节码即别有效 默认值
@Retention(RetentionPolicy.RUNTIME) 注解在运行时期有效