lombok 文档翻译

@Getter

可选元素:

修饰符和类型 可选元素 描述
boolean lazy
Getter.AnyAnnotation[] onMethod 这里列出的任何注释都放在生成的方法上。
AccessLevel value 如果你想让你的getter不公开,你可以在这里指定一个替代访问级别。

使用示例:

 @Getter(
     lazy = true,
     onMethod = @_({@JsonIgnore}),
     value = AccessLevel.PROTECTED
 )
 private final String name = "";

说明:

  • Lazy:默认为:false,如果设置 lazy 则 该属性必须为 final

  • onMethod:默认为{},此处出现的注解会在生成的方法上面,最常见的使用是结合JackJson,做序列化标注

    • JDK7-:@Getter(onMethod=@__({@AnnotationsGoHere}))
    • JDK8+:@Getter(onMethod_={@AnnotationsGohere})//注意后面的下划线onMethod
  • AccessLevel:默认为AccessLevel.PUBLIC 可以手动修改方法的访问级别,配置参数为 枚举类:AccessLevel中属性

@Setter

可选元素

修饰符和类型 可选元素 描述
Setter.AnyAnnotation[] onMethod 这里列出的任何注释都放在生成的方法上。
Setter.AnyAnnotation[] onParam 这里列出的任何注释都放在生成的方法参数上。
AccessLevel value 如果你希望你的setter是非公开的,你可以在这里指定一个替代访问级别。

使用示例:

@Setter(value = AccessLevel.PRIVATE)
private String trueName;

说明:

  • 该属性配置和@Getter 经常结合使用

  • onParam :该属性为参数的注解,此处可以和@NotNull 配合使用控制参数不为空,该属性配置同 onMethod

@NonNull

可选元素:无

使用示例:

@NonNull private String trueName;
private String getTrueName(@NonNull String name)

说明:

  • 该注解可以用在 字段、方法、参数 上 常见用于 字段 和 参数
  • 如果是字段注解,那么生成的get 、构造方法 都会进行 null 检测
  • 如果是参数注解,在方法的开头会加入一个空值检测。
  • 该注解检测到空值后会抛出NullPointerException

@ToString

可选元素

修饰符和类型 可选元素 描述
boolean callSuper toString在输出中包含超类实现的结果。
boolean doNotUseGetters 通常情况下,如果 getters是可用的,那么被调用。
java.lang.String[] exclude 这里列出的任何字段将不会被打印在生成的toString实现中。
boolean includeFieldNames 在打印时包括每个字段的名称。
java.lang.String[] of 如果存在,明确列出要打印的字段。

调用示例:

@ToString(callSuper = true, exclude = {"id"})
@Data
public class TestModel {
    private int id;
    private String trueName;
}

说明:

  • callSuper:默认false
  • doNotUseGetters:默认false 也就是会调用 get 方法
  • exclude: 默认为空
  • includeFieldNames:默认为true 会打印字段名称
  • of:默认为全部字段,即打印全部字段

@EqualsAndHashCode

可选元素

修饰符和类型 可选元素 描述
boolean callSuper 调用超类的实现equals,并hashCode计算对该类中的字段值。
boolean doNotUseGetters 通常情况下,如果getter是可用的,那么被调用。
java.lang.String[] exclude 这里列出的任何字段在生成equalshashCode实现中都不会被考虑在内。
java.lang.String[] of 如果存在,则明确列出要用于身份的字段。
EqualsAndHashCode.AnyAnnotation[] onParam 这里列出的任何注释都放在的生成的参数equalscanEqual

调用示例

@EqualsAndHashCode
public class TestModel {
    private int id;
    private String trueName;
}

说明:

  • callSuper :默认false

  • doNotUseGetters:默认false 也就是会调用 get 方法

  • exclude:默认为空

  • of:默认为全部字段

  • onParam:该注解用以 在传入的Object object 参数注解

@AllArgsConstructor

可选元素

修饰符和类型 可选元素 描述
AccessLevel access 设置构造函数的访问级别。
AllArgsConstructor.AnyAnnotation[] onConstructor 这里列出的任何注释都放在生成的构造函数中。
java.lang.String staticName 如果设置,生成的构造函数将是私有的,并且用包装真实构造函数的相同参数列表生成额外的静态“构造函数”。

说明:生成一个全指标构造函数。全参数构造函数需要类中每个字段的一个参数。

@NoArgsConstructor

可选元素

修饰符和类型 可选元素 描述
AccessLevel access 设置构造函数的访问级别。
boolean force 如果true,将所有最终字段初始化为0 / null / false。
NoArgsConstructor.AnyAnnotation[] onConstructor 这里列出的任何注释都放在生成的构造函数中。
java.lang.String staticName 如果设置,生成的构造函数将是私有的,并且用包装真实构造函数的相同参数列表生成额外的静态“构造函数”。

说明:生成一个无参数的构造函数。如果由于final字段的存在而无法写入这样的构造函数,将会生成错误消息。

@RequiredArgsConstructor

可选元素

修饰符和类型 可选元素 描述
AccessLevel access 设置构造函数的访问级别。
RequiredArgsConstructor.AnyAnnotation[] onConstructor 这里列出的任何注释都放在生成的构造函数中。
java.lang.String staticName 如果设置,生成的构造函数将是私有的,并且用包装真实构造函数的相同参数列表生成额外的静态“构造函数”。

说明:生成一个具有所需参数的构造函数。必需的参数是final和约束的字段,如@NonNull

@Data

可选元素

修饰符和类型 可选元素 描述
java.lang.String staticConstructor 如果你指定一个静态构造函数名,那么生成的构造函数将是私有的,而创建一个静态工厂方法,其他类可以用来创建实例。

说明:

  • 相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode

  • 为所有字段生成getter,一个有用的toString方法,以及hashCode和equals实现,用于检查所有非瞬态字段。还将为所有非final字段以及构造函数生成setter。

  • staticConstructor:默认:没有静态构造函数,而是普通的构造函数是公共的。如果你指定一个静态构造函数名,那么生成的构造函数将是私有的,而创建一个静态工厂方法,其他类可以用来创建实例。建议这个名字:“of”,就像这样:public @Data(staticConstructor =“of”)类Point {final int x,y; }.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,295评论 9 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,079评论 19 139
  • 此文为本人学习guice的过程中,翻译的官方文档,如有不对的地方,欢迎指出。另外还有一些附件说明、吐槽、疑问点,持...
    李眼镜阅读 3,571评论 2 5
  • 1 我家老二和小区里的一个小宝年龄相同,常在一起玩耍。两个小家伙互以好朋友相称,我和小宝妈也因此关系较近。 两个孩...
    坐井闲话阅读 379评论 0 2
  • 萬路千水終為徑,只渡緣人惶陌庭。 濁者自在糊塗性,清者自有清者心。 緣法自然終汲聆,待看慧思濁理淨。 圖表塗語塗心...
    漂红残月阅读 225评论 0 0