1. jdk内置(预定义好的)注解
* @Override :检测被该注解标注的方法是否是继承自父类(接口)
* @Deprecated:该注解标注的内容,表示已过时
* @SuppressWarnings:压制警告 * 一般传递参数all @SuppressWarnings("all")
package annotation;
import jdk.jfr.Percentage;
/*
* @Override :检测被该注解标注的方法是否是继承自父类(接口)
* @Deprecated:该注解标注的内容,表示已过时
* @SuppressWarnings:压制警告 * 一般传递参数all @SuppressWarnings("all")
*/
@SuppressWarnings("all") //压制警告 一般参数传递all
public class AnnoDemo02 {
@Override
public String toString() {
return super.toString();
}
@Deprecated
public void show(){
//方法优缺点
}
public void show02(){
//替代show1方法 但是不删show1因为还有低版本的使用者
}
public void demo(){
show(); //调用方法时会有一条横线因为写了@Deprecated
}
}
2.自定义注解
* 自定义注解
* 格式:
元注解
public @interface 注解名称{
属性列表;其实就是成员方法
}
* 本质:注解本质上就是一个接口,该接口默认继承Annotation接口
* public interface MyAnno extends java.lang.annotation.Annotation {}
注解的属性:接口中可以定义的内容 例如常量 成员方法等
3.自定义注解:属性定义
* 属性:接口中的抽象方法
* 要求:
1. 属性的返回值类型有下列取值
* 基本数据类型
* String
* 枚举
* 注解
* 以上类型的数组 不能void
2. 定义了属性,在使用时需要给属性赋值
1. 如果定义属性时,使用default关键字给属性默认初始化值,则使用注解时,可以不进行属性的赋值。
2. 如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可。
3. 数组赋值时,值使用{}包裹。如果数组中只有一个值,则{}可以省略
枚举类型enum如何赋值:
枚举类
注解类
worker类
注解 数组类型如何赋值:
数组赋值时,值使用{}包裹。如果数组中只有一个值,则{}可以省略
注解类
worker类