1 安装lombok
https://search.maven.org:搜索lombok的版本
pom依赖如下:
org.projectlombok lombok 1.18.22
2 使用lombok
2.1 @NoArgsConstructor和@AllArgsConstructor使用:
只有@NoArgsConstructor的情况:
package com.base4;
import lombok.NoArgsConstructor;
public class MyLombok {
public static void main(String[] args) {
XX a=new XX();
}
}
@NoArgsConstructor
class XX{
private String name;
int age;
}
查看编译后的代码:(target下的classes文件夹里)
package com.base4;
class XX {
private String name;
int age;
public XX() {
}
}
这和类没有任何构造方法时,默认含有一个无参构造方法是一样的效果。
那么试下只有@AllArgsConstructor的情况:
import lombok.AllArgsConstructor;
public class MyLombok {
public static void main(String[] args) {
XX a=new XX("xiaoxu",28);
}
}
@AllArgsConstructor
class XX{
private String name;
int age;
}
编译代码如下,可知@AllArgsConstructor会自动创建一个含有全部成员变量的构造方法,且默认是public的,这种效果和直接在类中定义一个含全部成员变量的构造方法是相同的效果(当定义了含全部成员变量的构造方法,未定义无参构造方式时,只有含全部成员变量的构造方法):
package com.base4;
class XX {
private String name;
int age;
public XX(String name, int age) {
this.name = name;
this.age = age;
}
}
所以,同时定义无参构造方法和含全部成员变量的构造方法方式如下:
package com.base4;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
public class MyLombok {
public static void main(String[] args) {
XX a=new XX("xiaoxu",28);
XX b=new XX();
}
}
@NoArgsConstructor
@AllArgsConstructor
class XX{
private String name;
int age;
}
package com.base4;
class XX {
private String name;
int age;
public XX() {
}
public XX(String name, int age) {
this.name = name;
this.age = age;
}
}
2.2 @Getter和@Setter使用: 生成getter和setter
package com.base4;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
public class MyLombok {
public static void main(String[] args) {
XX a=new XX("xiaoxu",28);
XX b=new XX();
}
}
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
class XX{
private String name;
int age;
}
package com.base4;
class XX {
private String name;
int age;
public XX() {
}
public XX(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
}



