在没有 @NonNull 的情况下使用 Lombok @RequiredArgsConstructor

Use Lombok @RequiredArgsConstructor without @NonNull

我有这样的东西:

@RequiredArgsConstructor
public class Person {
    private String name;
    private LocalDate date = null;
}

我只需要名称属性的构造函数,但它不起作用。如果我使用 @NonNull 它将构建我需要的构造函数,但对于我的情况,名称应该可以为 null,也不能是 final。有任何想法吗?谢谢!

Lombok @RequiredArgsConstructor 目前没有这样的选项。

您至少有两个选择:

  1. 只需编写构造函数 public Person(String name),无需 注释。
  2. 使用继承——在你的情况下这可能有点矫枉过正,但在某些情况下可能很方便——如下所示:

    • 创建一个基础 class,它包含您不希望出现在 Person 构造函数中的所有字段:

      public abstract class BasePerson {
          private LocalDate date = null;
      }
      
    • 让你的 Person class 在构造函数中使用你需要的字段在上面扩展,但也想成为 null@AllArgsConstructor:

      @AllArgsConstructor
      public abstract class Person extends BasePerson {
          private String name;
      }