使用没有@NonNull的Lombok @RequiredArgsConstructor

时间:2018-02-14 15:16:45

标签: java lombok

我有这样的事情:

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

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

1 个答案:

答案 0 :(得分:0)

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

您至少有两个选择:

  1. 只需在没有注释帮助的情况下对构造函数public Person(String name)进行编码。
  2. 使用继承 - 在您的情况下可能有点矫枉过正,但在某些情况下可能会有用 - 如下所示:

    • 创建一个基类,其中包含您不希望在Person构造函数中的所有字段:

      public abstract class BasePerson {
          private LocalDate date = null;
      }
      
    • 让您的Person类在构造函数中包含您需要的字段,但也希望null使用@AllArgsConstructor

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