Lombok怎么在java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强> Lombok是什么? 强>
Lombok是一个通过注解以达到减少代码的java库,如通过注解的方式减少,设置方法,构造方法等。
<>强如何安装Lombok ? 强>
如何安装使用Lombok呢?
<强>方法一
强>
通过向自由文件夹中添加lombok.jar包即可,
<强>方法二强>
如果使用的是Maven,则可在项目的砰的一声。xml文件中添加以下依赖:
& lt; dependency> & lt; groupId> org.projectlombok & lt; artifactId> lombok & lt; version> 1.16.12 & lt;/dependency>
通过以上两种方法的确可以使用Lombok的相关API了,但无论是Intelij想法,还是Eclipse默认情况下是不能识别的,我们还要让想法识别起来。
Intellij idea方法:
文件→设置→插件→浏览存储库→Lombok
<>强如何使用Lombok吗?强>
Lombok提供注解方式来提高代码的简洁性,常用注解有:
- <李>
李> @ data <李>
@ setter @ getter
李> <李>@NonNull
李> <李>@ synchronized
李> <李>@ToString
李> <李>@EqualsAndHashCode
李> <李>@Cleanup
李> <李>@SneakyThrows
李>下面分别介绍每个方法的作用以及对应的源代码@ data
该注解相当于同时加上以下注解@ setter @ getter, @ToString, @EqualsAndHashCode,作用于类中使用:
/* * *,作者:安迪 *,日期:17-4-22 *,博客:www.andyqian.com */@ data public class  Person { private String 名称; private String 地址; private String 城市; private String 状态; private String 拉链; private Date 生日; }
效果如下:
<强> @Getter@Setter
强>
作用于属性上,自动生成,集方法。
/* * *,作者:安迪 *,日期:17-4-22 *,博客:www.andyqian.com */public class  Person { @Getter@Setter private String 名称; }
等价源码:
public String getName (), { return 名称; } public void  setName (String 名称),{ this.name =,名称; }
<>强@NonNull 强>
该注解快速判断是否为空,如果为空,则抛出. lang。NullPointerException
使用方法:
/* * *,作者:安迪 *,日期:17-4-22 *,博客:www.andyqian.com */public class  Person { private String 名称; @Setter@Getter@NonNull private List< Person>,成员; }
源码:
@NonNull private List< Person>,成员; public 家庭(@NonNull final List< Person>,成员),{ if (members ==, null), throw new java.lang.NullPointerException (“members"); 时间=this.members 成员; } @NonNull public List< Person>, getMembers (), { return 成员; } public void  setMembers (@NonNull final  List,成员),{ if (members ==, null), throw new java.lang.NullPointerException (“members"); 时间=this.members 成员; }
<强> @ synchronized 强>
该注解自动添加到同步机制,有趣的是,生成的代码并不是直接锁方法,而是锁代码块,作用范围是方法上
使用方法:
private DateFormat format =, new SimpleDateFormat (“MM-dd-YYYY"); @ synchronized public String  synchronizedFormat (Date 日期),{ return format.format(日期); }
生成等价源码:
private final java.lang.Object lock 美元;=,new java . lang . object [0]; 时间=private DateFormat  format new SimpleDateFormat (“MM-dd-YYYY"); public String  synchronizedFormat (Date 日期),{ synchronized (锁),{ return format.format(日期); } }
<>强@ToString 强>
该方法大家应该非常熟悉,但需要注意的是:@ToString有多个属性可以进一步设置: