龙目岛不生成getter和setter?

Posted

技术标签:

【中文标题】龙目岛不生成getter和setter?【英文标题】:Lombok not generating getter and setter? 【发布时间】:2022-01-19 07:12:01 【问题描述】:

第一次使用 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
    

【问题讨论】:

你需要在类的顶部添加@Data注解。 objectcomputing.com/resources/publications/sett/… 你的导入错误? import lombok.Getter; import lombok.Setter; @ping.shantanu 感谢您的评论。您不只是指定类级别的数据注释吗?它没有说我必须添加数据。所有文档都说 Data 是一个注释,包括 Getter、Setter、ToString 等的所有特征。 @user7294900,对不起,我忘了在问题中添加 setter 导入。 Eclipse 的 Lombok 设置:projectlombok.org/setup/eclipse 【参考方案1】:

您的代码应该这样工作, 你的 EDI 上安装了 lombok 的插件吗?

【讨论】:

Lombok 插件实际上并没有安装在我的 IDE 中。我认为它已安装,但在导入时没有说任何错误。谢谢@Clint Magnus 和@Dan_Maff 我向朋友们道歉。【参考方案2】:

Lombok 没有安装在我的 IDE 中。

安装它解决了问题。

【讨论】:

【参考方案3】:

另一种简单的方法是使用@Data 注释,它为类中的每个属性生成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),类、注释等将在您使用时自动导入。

【讨论】:

这没有回答问题。它只是重复使用其他注释的问题。【参考方案4】:

这样试试

@Getter
 @Setter
public class Student 
   
    private String firstName;
    
    private String lastName;
    
    public Student(String firstName, String lastName) 
    
        this.setFirstName(firstName); 
        this.setLastName(lastName);  
    

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于龙目岛不生成getter和setter?的主要内容,如果未能解决你的问题,请参考以下文章

Lombok 写一个@Data更好还是@Getter+@Setter更好?

龙目岛与休眠

为啥我不能将自动实现的 getter 和 setter 与 List 一起使用? (统一,C#)

IDE 不显示 Lombok 为 Jackson 注释类生成的 getter 和 setter

Kotlin类与对象 ① ( 成员属性 | Kotlin 自动为成员字段生成 getter 和 setter 方法 | 手动设置成员的 getter 和 setter 方法 | 计算属性 )

Lombok 没有生成 getter 和 setter