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。

安装它解决了问题。