public @interface JsonField {
public String value() default “”;
}
1)JsonField 注解的生命周期是 RUNTIME,也就是运行时有效。
2)JsonField 注解装饰的目标是 FIELD,也就是针对字段的。
3)创建注解需要用到 @interface
关键字。
4)JsonField 注解有一个参数,名字为 value,类型为 String,默认值为一个空字符串。
为什么参数名要为 value 呢?有什么特殊的含义吗?
当然是有的,value 允许注解的使用者提供一个无需指定名字的参数。举个例子,我们可以在一个字段上使用 @JsonField(value = "沉默王二")
,也可以把 value =
省略,变成 @JsonField("沉默王二")
。
那 default ""
有什么特殊含义吗?
当然也是有的,它允许我们在一个字段上直接使用 @JsonField
,而无需指定参数的名和值。
05、使用注解
是骡子是马拉出来遛遛,对吧?现在 @JsonField
注解已经撸好了,接下来就到了怎么使用它的环节。
假设有一个作者类,他有 3 个字段,分别是 age、name 和 bookName,后 2 个是必须序列化的字段。
public class Writer {
private int age;
@JsonField(“writerName”)
private String name;
@JsonField
private String bookName;
public Writer(int age, String name, String bookName) {
this.age = age;
this.nam