java - 将 trim 方法添加到 Lombok 中的 setter

标签 java setter lombok

我使用 Project Lombok 为字符串字段生成 getter/setter。此字段(例如密码)具有验证注释。

@Size(min = 6,max = 100, message = "The password must be between 6 and 100 characters") 
private String password;

我想在 setter 中添加 trim 方法,以便不计算长度中的空格。

public void setPassword(String password) {
    this.password = password.trim();
}

如何在 Lombok setter 中添加 trim 方法?或者我必须编写自定义 setter?

最佳答案

在这种情况下,您必须编写一个自定义 setter 。如果您使用的是不可变的等价物(Wither),您可以将 trim() 放在构造函数中并只需添加 @Wither方法,这也适用于通过 @Builder 生成的构建器还。这是一种更安全的方法,可确保始终修剪密码。

  @Wither
  @Size(min = 6,max = 100, message = "The password must be between 6 and 100 characters") 
  private final String password; //guaranteed to be trimmed


  public MyClass(final String password){  
    this.password=  password.trim();
  }

更新:

@Wither was introduced as experimental feature in lombok v0.11.4. @Wither was renamed to @With, and moved out of experimental and into the core package, in lombok v1.18.10.

从 aboce 链接到 Wither。

关于java - 将 trim 方法添加到 Lombok 中的 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702683/

相关文章:

java - lombok 调用默认构建器的子类函数

Java SneakyThrow of exceptions,类型删除

java - Lombok - 在实现 equals 和 hashcode 时使用 @Data 发出警告

java - JScrollPane 自动换行

java - 为什么使用其他方法会出现错误消息?

c# - 如何在 C# 中使用 setter 覆盖 getter-only 属性?

ios - OC Setter方法

java - Java 播放 wav 声音最有效的方法

java - TimeZone 在 Android 2.3 的 SimpleDateFormat 中损坏

c# - 将对公共(public) setter 的访问限制为特定对象 (C#)