【问题标题】:Lombok in enum : @Setter is giving compile error in enum枚举中的龙目岛:@Setter 在枚举中给出编译错误
【发布时间】:2020-08-06 21:29:38
【问题描述】:

错误:@Setter 仅在类或字段上受支持。 pom.xml 中的 lombok 版本 = 1.18.12

想让这个 ErrorMessages 对任何类型的错误都是通用的。 需要通过 lombok 创建 getter 和 setter 并访问:ErrorMessages.MISSING_REQUIRED_FIELD.getErrorMessage()

import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public enum ErrorMessages {

    MISSING_REQUIRED_FIELD("Missing required field. Please check documentation for required fields."),
    RECORD_ALREADY_EXISTS("Record already exists");

    private String errorMessage;

//  public String getErrorMessage() {
//      return errorMessage;
//  }
//
//  public void setErrorMessage(String errorMessage) {
//      this.errorMessage = errorMessage;
//  }

    ErrorMessages(String errorMessage) {
        this.errorMessage = errorMessage;

    }

}

【问题讨论】:

  • enum 应该是不可变的。在他们身上设置一个二传手与这个想法背道而驰。

标签: java eclipse lombok


【解决方案1】:

这应该是 class,而不是 enum,如果您不想更改数据,请参阅 Joachim Sauer 评论。

另外请注意构造函数也需要公开

@Setter
@Getter
public class ErrorMessages {

    private String errorMessage;

    public ErrorMessages(String errorMessage) {
        this.errorMessage = errorMessage;}
}

【讨论】:

  • 呃,更好的是,@Value public class....。命名一个类 ErrorMessages(复数)也很奇怪,但很难理解提问者试图用这段代码做什么。
  • 我同意这里也可以使用@Data
  • 希望将此 ErrorMessages 用于任何类型的错误。需要通过 lombok 创建 getter 和 setter 并访问:ErrorMessages.MISSING_REQUIRED_FIELD.getErrorMessage() 使用 @Data 给出相同的错误 - 类支持
猜你喜欢
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 2010-12-10
  • 1970-01-01
相关资源
最近更新 更多