Loading... > Project **Lombok** is a java library that automatically plugs into your editor and build tools, spicing up your java. > Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 以下内容除特别标注外,均为原创。涵盖 lombok main package 大部分用法。 ## Getter & Setter | 注解 | 作用于字段 | 作用于类 | | -------- | ---------- | -------------------------- | | @Getter | 生成getter | 生成所有非静态字段的getter | | @Setter | 生成setter | 生成所有非静态字段的setter | | 属性 | 作用 | | ------- | -------------------------------------------- | | value() | 设置的access flag,如public, protected, etc. | ## Nonnull | 注解 | 作用于字段 | 作用于形式参数 | | -------- | ------------------------------ | -------------------------------- | | @NonNull | 写这个字段的方法生成null-check | 传递这个参数的代码生成null-check | ## Constructor | 注解 | 作用于类 | | ------------------------ | ---------------------------- | | @AllArgsConstructor | 根据所有字段生成构造函数 | | @RequiredArgsConstructor | 根据未赋初值字段生成构造函数 | | @NoArgsConstructor | 生成无参数构造函数 | | 属性 | 作用 | | ------------ | -------------------------------------------------- | | access() | 设置的access flag,如public, protected, etc. | | staticName() | 使构造函数私有,并生成一个调用构造函数的工厂方法。 | ## ToString & Equals & HashCode | 注解 | 作用于类 | | ------------------ | -------------------------------- | | @ToString | 根据字段生成toString() | | @EqualsAndHashCode | 根据字段生成equals()和hashCode() | | 属性 | 作用 | | ----------- | ---------------------------------------- | | callSuper() | 是否调用超类属性 | | @Exclude | 将标记的字段排除 | | @Include | 将标准的字段包含,没用标记的字段将被排除 | ## Var & Val | 注解 | 作用于局部变量 | | ---- | ----------------------------------- | | @val | 推断类型,并将局部变量标记为final | | @var | 推断类型,类似Java11添加的var关键字 | ## Data & Value | 注解 | 作用用于类 | 作用于方法 | | ------ | ------------------------------------------------------ | ---------- | | @Data | 等价于 @Getter, @Setter, @ToString, @EqualsAndHashCode | - | | @Value | - | @Data类似 | ## Builder | 注解 | 作用于类 | | -------- | ------------------------------------------------------------ | | @Builder | 建造者模式,自动创建内部类建造者和静态实例化建造者的工厂方法。 | 使用示例[^1] ```java @Builder class Example<T> { private T foo; private final String bar; } ``` ```java class Example<T> { private T foo; private final String bar; private Example(T foo, String bar) { this.foo = foo; this.bar = bar; } public static <T> ExampleBuilder<T> builder() { return new ExampleBuilder<T>(); } public static class ExampleBuilder<T> { private T foo; private String bar; private ExampleBuilder() {} public ExampleBuilder foo(T foo) { this.foo = foo; return this; } public ExampleBuilder bar(String bar) { this.bar = bar; return this; } @java.lang.Override public String toString() { return "ExampleBuilder(foo = " + foo + ", bar = " + bar + ")"; } public Example build() { return new Example(foo, bar); } } } ``` [^1]: 摘自lombok的javadoc ## SneakyThrows | 注解 | 作用于方法 | | ------------- | ------------------------------------------------------------ | | @SneakyThrows | 作用于方法,自动生成try catch语句块,若返回类型是基本类型,则返回默认值;若返回类型是引用类型,返回null。由于Java的限制,无法应用于lombda表达式。 | ## pom.xml ```xml <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.6</version> <scope>provided</scope> </dependency> ``` 最后修改:2020 年 04 月 07 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏