Lombok 没有生成 getter 和 setter?
Lombok not generating getter and setter?
第一次使用 lombok,如果我理解正确,lomboks getter 和 setter 注释生成 setter 和 getter 方法而无需编码,但出于某种原因,每当我尝试调用 getter/setter 方法时,都会收到“未定义方法”错误。
这是怎么回事?
import lombok.Getter;
import lombok.Setter;
public class Student {
@Getter @Setter
private String firstName;
@Getter @Setter
private String lastName;
public Student(String firstName, String lastName) {
super();
this.setFirstName(firstName); // method undefined error here
this.setLastName(lastName); // method undefined error here
}
}
这样试试
@Getter
@Setter
public class Student {
private String firstName;
private String lastName;
public Student(String firstName, String lastName) {
this.setFirstName(firstName);
this.setLastName(lastName);
}
}
你的代码应该像这样工作,
您是否在 EDI 上安装了 lombok 插件?
另一种简单的方法是使用 @Data
注释,它为 class 中的每个 属性 生成 getter 和 setter。
import lombok.Data;
@Data
public class Student {
private String firstName;
private String lastName;
public Student(String firstName, String lastName) {
super();
this.setFirstName(firstName);
this.setLastName(lastName);
}
}
快速说明:导入内容不会使用它。它只是告诉程序某些东西 可以 被使用。如果您使用的是现代 Java IDE(VSCode 或 IntelliJ),classes、注释等将在您使用它们时自动导入。
我的 IDE 中没有安装 Lombok。
安装它解决了问题。
第一次使用 lombok,如果我理解正确,lomboks getter 和 setter 注释生成 setter 和 getter 方法而无需编码,但出于某种原因,每当我尝试调用 getter/setter 方法时,都会收到“未定义方法”错误。
这是怎么回事?
import lombok.Getter;
import lombok.Setter;
public class Student {
@Getter @Setter
private String firstName;
@Getter @Setter
private String lastName;
public Student(String firstName, String lastName) {
super();
this.setFirstName(firstName); // method undefined error here
this.setLastName(lastName); // method undefined error here
}
}
这样试试
@Getter
@Setter
public class Student {
private String firstName;
private String lastName;
public Student(String firstName, String lastName) {
this.setFirstName(firstName);
this.setLastName(lastName);
}
}
你的代码应该像这样工作, 您是否在 EDI 上安装了 lombok 插件?
另一种简单的方法是使用 @Data
注释,它为 class 中的每个 属性 生成 getter 和 setter。
import lombok.Data;
@Data
public class Student {
private String firstName;
private String lastName;
public Student(String firstName, String lastName) {
super();
this.setFirstName(firstName);
this.setLastName(lastName);
}
}
快速说明:导入内容不会使用它。它只是告诉程序某些东西 可以 被使用。如果您使用的是现代 Java IDE(VSCode 或 IntelliJ),classes、注释等将在您使用它们时自动导入。
我的 IDE 中没有安装 Lombok。
安装它解决了问题。