在没有 @NonNull 的情况下使用 Lombok @RequiredArgsConstructor
Use Lombok @RequiredArgsConstructor without @NonNull
我有这样的东西:
@RequiredArgsConstructor
public class Person {
private String name;
private LocalDate date = null;
}
我只需要名称属性的构造函数,但它不起作用。如果我使用 @NonNull
它将构建我需要的构造函数,但对于我的情况,名称应该可以为 null,也不能是 final。有任何想法吗?谢谢!
Lombok @RequiredArgsConstructor
目前没有这样的选项。
您至少有两个选择:
- 只需编写构造函数
public Person(String name)
,无需 lombok 注释。
使用继承——在你的情况下这可能有点矫枉过正,但在某些情况下可能很方便——如下所示:
创建一个基础 class,它包含您不希望出现在 Person
构造函数中的所有字段:
public abstract class BasePerson {
private LocalDate date = null;
}
让你的 Person
class 在构造函数中使用你需要的字段在上面扩展,但也想成为 null
,@AllArgsConstructor
:
@AllArgsConstructor
public abstract class Person extends BasePerson {
private String name;
}
我有这样的东西:
@RequiredArgsConstructor
public class Person {
private String name;
private LocalDate date = null;
}
我只需要名称属性的构造函数,但它不起作用。如果我使用 @NonNull
它将构建我需要的构造函数,但对于我的情况,名称应该可以为 null,也不能是 final。有任何想法吗?谢谢!
Lombok @RequiredArgsConstructor
目前没有这样的选项。
您至少有两个选择:
- 只需编写构造函数
public Person(String name)
,无需 lombok 注释。 使用继承——在你的情况下这可能有点矫枉过正,但在某些情况下可能很方便——如下所示:
创建一个基础 class,它包含您不希望出现在
Person
构造函数中的所有字段:public abstract class BasePerson { private LocalDate date = null; }
让你的
Person
class 在构造函数中使用你需要的字段在上面扩展,但也想成为null
,@AllArgsConstructor
:@AllArgsConstructor public abstract class Person extends BasePerson { private String name; }