选择默认的编译方式为 javac,因为Lombok插件只适合IDEA,eclipse不支持Lombok的编译方式,javac支持Lombok的编译方式。
Lombok插件,能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString 方法。出现的神奇就是在源码中没有 getter 和 setter 方法,但是在编译生成的字节码文件中有 getter 和 setter 方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。
- 我们在使用Lombok插件时,也要在maven中添加依赖,如下:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
- 然后将插件安装到IDEA,file-setting-plugins,搜索下载就好了。
- 在设置中搜索Annotation Processors,然后在Enable annotation processing前打钩
到这里,就算是配好了,简单介绍一下常用注解。
@Data
@Data 注解在类上,会为类的所有属性自动生成 setter/getter、equals、canEqual、hashCode、toString 方法,如为 final 属性,则不会为该属性生成 setter 方法。
@Getter/@Setter
如果觉得@Data 太过残暴(因为@Data 集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor 的所有特性)不够精细,可以使用@Getter/@Setter 注解,此注解在属性上,可以为相应的属性自动生成 set/get 方法。
@ToString
类使用@ToString 注解,Lombok 会生成一个 toString() 方法,默认情况下,会输出类名、所有属性(会按照属性定义顺序),用逗号来分割。
当然,还有很多注解,如@NonNull,生成一个非空声明;@Cleanup,自动调用close()方法等等。
这里简单的使用一下,有了这个标签,我们之前的实体类就可以这样定义了:
@Getter
@Setter
@ToString
public class User implements Serializable {
private long id;
private String username;
private String password;
private String sex;
private String address;
}
这样,测试出来的结果也和原来一样。