注解原理
注解描述
1. JDK1.5以后的版本新特性
2. 说明程序的
3. 注解作用
- 1.限定父类重写方法:@Override
当子类重写父类方法时,子类可以加上这个注解,那这有什么什么用?这可以确保子类确实重写了父类的方法,避免出现低级错误
- 2.标示已过时:@Deprecated
这个注解用于表示某个程序元素类,方法等已过时,当其他程序使用已过时的类,方法时编译器会给出警告(删除线,这个见了不少了吧)。
- 3.抑制编译器警告:@SuppressWarnings
被该注解修饰的元素以及该元素的所有子元素取消显示编译器警告,例如修饰一个类,那他的字段,方法都是显示警告 用法 在类、方法上 @SuppressWarnings("all")
自定义注解
格式:
通过反编译:元注解 public @interface 注解名称{}
public interface 注解名称 extends java.lang.annotation.Annotation{}
属性: 接口中的抽象方法
元注解: 用于描述注解的注解要求: 1、 属性的返回值类型 基本数据类型 String 枚举 注解 以上类型的数组 2、定义了属性,在使用时需要给属性赋值 1、如果定义属性时,使用default 关键字给属性默认初始化值,使用注解时可以不进行属性赋值 2、如果只有一个属性需要赋值,并且属性的名称是value,则value可以省略,直接定义值即可 3、数组赋值时,值使用{}包裹,如果数组中只有一个值,则{}省略 例如: public @interface MyAnno { String show() default ""; int value(); String [] show1(); } 使用: @MyAnno(value = 12,show = "aa",show1 = "aa") public void show(){ }
@Target: 描述注解能够作用的位置 @Retention: 描述注解被保留的阶段 @Documented :描述注解是否被抽取到api文档中 @Inherited: 描述注解是否被子类继承
在程序中使用自定义注解
1 获取注解定义的位置的对象(class, mothed,field)
- 获取指定的注解
getAnnotation(class) - 调用注解中的抽象方法获取配置的属性值
- 获取指定的注解
本作品采用《CC 协议》,转载必须注明作者和本文链接