目录
简介:Lombok
简介:
Lombok项目是一个Java库,它会自动插入编辑器和构建工具中,Lombok提供了一组有用的注释,用来消除Java类中的大量样板代码。仅五个字符(@Data)就可以替换数百行代码从而产生干净,简洁且易于维护的Java类。
- 可以不打getter和setter的方法
- 可以不打toString方法
- 生成hashCode和equals方法。
- 等等,详细看官方Lombok_百度百科
使用步骤:
- 在idea里安装lombok插件,seting-->pluging-->搜索lombok-->安装即可
- 导入jar包,我们有maven仓库直接用依赖就行啦,
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.10</version> </dependency>
- 没有插件之前,我们的实体类是这样的!
public class User { private int id ; private String name; private String pwd; public User(){ } public User(int id, String name, String pwd) { this.name = name; this.pwd=pwd; this.id=id; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; } }
下载插件后,在类名上加上@Data
@Data
public class User {
private int id ;
private String name;
private String pwd;
public User(){
}
}
4.lomok的注解有多个,分别是:
@Setter :注解在类或字段,注解在类时为所有字段生成setter方法,注解在字段上时只为该字段生成setter方法。
@Getter :使用方法同上,区别在于生成的是getter方法。
@ToString :注解在类,添加toString方法。
@EqualsAndHashCode: 注解在类,生成hashCode和equals方法。
@NoArgsConstructor: 注解在类,生成无参的构造方法。
@RequiredArgsConstructor: 注解在类,为类中需要特殊处理的字段生成构造方法,比如final和被@NonNull注解的字段。
@AllArgsConstructor: 注解在类,生成包含类中所有字段的构造方法。
@Data: 注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
@Slf4j: 注解在类,生成log变量,严格意义来说是常量。
优点和缺点:
缺点:
- 代码可读性和可调试性降低,
- 必须安装第三方插件
- 高侵入性,强迫队友,Lombok插件的使用,要求开发者一定要在IDE中安装对应的插件。不仅自己要安装,任何和你协同开发的人都要安装
- 注解使用有风险,在使用Lombok过程中,如果对于各种注解的底层原理不理解的话,很容易产生意想不到的结果
优点:省事
个人建议:能用着玩,工作就不要用了;Lombok虽好,但缺点也不少,如果你在公司团队开发中被强X了,你就只能使用,如果新项目开发,能不用就尽量别用了,否则坑也不少的!