Lombok的使用
IDEA安装插件:
添加Lombok IntelliJ插件以添加对IntelliJ的lombok支持:
-
去
File > Settings > Plugins
-
点击
Browse repositories...
-
搜索
Lombok Plugin
-
点击
Install plugin
- 重启IntelliJ IDEA
pom依赖:
<!--@Data注解--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.10</version> </dependency>
@NonNull:
null检查看起来像if (param == null) throw new NullPointerException("param is marked @NonNull but is null");
将被插入到方法的最顶层
import lombok.NonNull; public class NonNullExample extends Something { private String name; public NonNullExample(@NonNull Person person) { super("Hello"); this.name = person.getName(); } }
@Getter和@Setter
让lombok自动生成默认的getter / setter。
import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; public class GetterSetterExample { /** * Age of the person. Water is wet. * * @param age New value for this person's age. Sky is blue. * @return The current value of this person's age. Circles are round. */ @Getter @Setter private int age = 10; /** * Name of the person. * -- SETTER -- * Changes the name of this person. * * @param name The new value. */ @Setter(AccessLevel.PROTECTED) private String name; @Override public String toString() { return String.format("%s (age: %d)", name, age); } }
其他介绍:
-
@Getter / @Setter
:可以作用在类上和属性上,放在类上,会对所有的非静态(non-static)属性生成Getter/Setter方法,放在属性上,会对该属性生成Getter/Setter方法。并可以指定Getter/Setter方法的访问级别。 -
@EqualsAndHashCode
:默认情况下,会使用所有非瞬态(non-transient)和非静态(non-static)字段来生成equals和hascode方法,也可以指定具体使用哪些属性。 @ToString 生成toString方法,默认情况下,会输出类名、所有属性,属性会按照顺序输出,以逗号分割。 -
@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
:无参构造器、部分参数构造器、全参构造器 -
@Data:包含@ToString, @EqualsAndHashCode, 所有属性的@Getter, 所有non-final属性的@Setter和@RequiredArgsConstructor的组合,通常情况下,基本上使用这个注解就足够了。
-
@Budilder
:可以进行Builder方式初始化。 -
@Slf4j
:等同于:private final Logger logger = LoggerFactory.getLogger(XXX.class);简直不能更爽了!一般上用在其他java类上