【问题标题】:Lombok not generating getter and setter?龙目岛不生成getter和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

标签: java spring-boot maven lombok


【解决方案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
    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多