JAVA学习笔记(注解)

1. JDK预定义注解

(1) @Deprecated(表示标记对象已过时)

(2) @SuppressWarnings("all") (忽略标记对象的警告)

2. 元注解(用于描述注解的注解)

@Target 描述注解所生效的位置

@Retention 描述注解被保留的阶段(生命周期)

@Documented 描述类内的注解(含其他)可被抽取到api文档

@Inherited 描述类内的注解会被子类继承

(1) @Target

只有ElementType的value属性

TYPE:注解作用于类或接口

FIELD:注解作用于成员变量

METHOD:注解作用于方法

CONSTRUCTOR:注解作用于构造器

JAVA学习笔记(注解)_第1张图片

(2) @Retention

只有RetentionPolicy的value属性

SOURCE:注解存在于代码阶段,源码不存在

CLASS:注解存在于字节码阶段,运行不存在

RUNTIME:注解存在于所有阶段

JAVA学习笔记(注解)_第2张图片

3. 自定义注解(Annotation)

(1) 自定义注解(新建)

自定义注解本质是,实现(Annotation接口)的接口

JAVA学习笔记(注解)_第3张图片

(2) 自定义注解(属性)

类型1:基本类型(byte, short, int, long, double, float, boolean, char)

类型2:String

类型3:枚举类

类型4:注解

类型5:上记类型的数组

JAVA学习笔记(注解)_第4张图片

 (3) 使用属性

JAVA学习笔记(注解)_第5张图片

 (4) 属性默认值

指定了默认值的属性,使用时可以不指定初期化值。

 (5) 默认属性

如果属性,只有value属性,使用时可以不指定属性名

JAVA学习笔记(注解)_第6张图片

 

4. 解析注解

 通过反射机制,获取注解的值

(1) 获取对象的注解( getAnnotation(注解.class) 或 getAnnotations() )

JAVA学习笔记(注解)_第7张图片

 (2) 获取对象注解的值

 (3) 代码测试

1.定义枚举类

JAVA学习笔记(注解)_第8张图片

 2. 定义注解类

JAVA学习笔记(注解)_第9张图片

 3. 定义使用注解类和方法

JAVA学习笔记(注解)_第10张图片

 4. 反射获取值

JAVA学习笔记(注解)_第11张图片

 5. 执行结果

JAVA学习笔记(注解)_第12张图片

你可能感兴趣的:(java,学习,笔记)