<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<scope>providedscope>
dependency>
Lombok的官方地址: https://projectlombok.org/
下载地址:https://projectlombok.org/download.html
下载完lombok.jar后,双击运行,或者在cmd命令行输入: java -jar lombok.jar 运行
选择完IDEs,点击Install / Update按钮即可,安装成功界面:
打开我们STS的配置文件STS.ini检查一下lombok的配置,我的目录是D:\Program Files (x86)\sts-bundle\sts-3.8.3.RELEASE\STS.ini
这个时候,如果我们去启动STS的话,会发现启动不了,什么问题呢
因为我们的lombok目录中有(x86),导致其路径识别不了
由于安装lombok的时候,其已经把lombok.jar拷贝到了和STS.exe同目录下
所以我们可以把
-javaagent:D:\Program Files \(x86\)\sts-bundle\sts-3.8.3.RELEASE\lombok.jar
改为
-javaagent:lombok.jar
保存即可。
然后在启动STS,已经可以顺利启动。
lombok提供的注解:
@NoArgsConstructor/@RequiredArgsConstructor /@AllArgsConstructor
这三个注解都是用在类上的,第一个和第三个都很好理解,就是为该类产生无参的构造方法和包含所有参数的构造方法,
第二个注解则使用类中所有带有@NonNull注解的或者带有final修饰的成员变量生成对应的构造方法,当然,和前面几个注解一样,成员变量都是非静态的,
另外,如果类中含有final修饰的成员变量,是无法使用@NoArgsConstructor注解的。
三个注解都可以指定生成的构造方法的访问权限,同时,第二个注解还可以用@RequiredArgsConstructor(staticName=”methodName”)的形式生成一个指定名称的静态方法,返回一个调用相应的构造方法产生的对象,下面来看一个生动鲜活的例子
@RequiredArgsConstructor(staticName = "sunsfan")
@AllArgsConstructor(access = AccessLevel.PROTECTED)
@NoArgsConstructor
public class Shape {
private int x;
@NonNull
private double y;
@NonNull
private String name;
}
实际效果相当于:
public class Shape {
private int x;
private double y;
private String name;
public Shape(){
}
protected Shape(int x,double y,String name){
this.x = x;
this.y = y;
this.name = name;
}
public Shape(double y,String name){
this.y = y;
this.name = name;
}
public static Shape sunsfan(double y,String name){
return new Shape(y,name);
}
}