Annotation
生命周期(保留策略)
- SOURCE
- CLASS
- RUNTIME
目标作用域
1)TYPE:⽤于类、接⼝、注解、枚举
2)FIELD:⽤于字段(类的成员变量),或者枚举常量
3)METHOD:⽤于⽅法
4)PARAMETER:⽤于普通⽅法或者构造⽅法的参数
5)CONSTRUCTOR:⽤于构造⽅法
6)LOCAL_VARIABLE:⽤于变量
7)ANNOTATION_TYPE:⽤于注解
8)PACKAGE:⽤于包
9)TYPE_PARAMETER:⽤于泛型参数
10)TYPE_USE:⽤于声明语句、泛型或者强制转换语句中的类型
11)MODULE:⽤于模块
自定义注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.Field)
public @interface JsonField{
public String value() defalut "";
}
常用方法
- object.getClass();
- aClass.getDeclaredFields()
- field.setAccessible(true)
- field.isAnnotationPresent(JsonFiled.class)
- field.getAnnotation(JsonFiled.class).value()
- field.getName()