Java Lombok生成的构造函数不带@Nonnull注释
我正在使用Lombok生成POJO。我用Java Lombok生成的构造函数不带@Nonnull注释,java,constructor,lombok,non-nullable,Java,Constructor,Lombok,Non Nullable,我正在使用Lombok生成POJO。我用javax.annotation.Nonnull注释了一堆字段,我希望这个注释会自动传输到构造函数。 然而,这并没有发生,Lombok似乎完全忽略了此注释,并且在使用此字段的@Nullable值时不会生成任何警告 当构造函数由IDE生成时,一切都按预期工作。这也适用于getter/setter我已经尝试将javax.annotation.Nonnull添加到lombok.copyableAnnotations中,并添加javax.annotation.pa
javax.annotation.Nonnull
注释了一堆字段,我希望这个注释会自动传输到构造函数。
然而,这并没有发生,Lombok似乎完全忽略了此注释,并且在使用此字段的
@Nullable
值时不会生成任何警告
当构造函数由IDE生成时,一切都按预期工作。这也适用于getter/setter我已经尝试将
javax.annotation.Nonnull
添加到lombok.copyableAnnotations
中,并添加javax.annotation.parameters默认情况下为nnull
注释,但均无效
@Data
class TestObject {
@Nonnull private String nonnull;
}
TestObject testObject = new TestObject(null); <-- no warning
testObject.setNonnull(null); <-- warning generated
@数据
类TestObject{
@非空私有字符串非空;
}
TestObject TestObject=新的TestObject(空) 这是因为Lombok只扫描@Lombok.NonNull
。请参见以下示例:
@lombok.RequiredArgsConstructor
public class LombokNoNull {
@lombok.NonNull
private String lombokRequires;
@javax.validation.constraints.NotNull
private String lombokDoesNotRequire;
@javax.annotation.Nonnull
private String lombokDoesNotRequireEither;
public static LombokNoNull newInstance() {
// for this class the required args constructor contains only field
// "lombokRequires"
return new LombokNoNull("stringRequiredByLombok");
}
}
这是因为Lombok只扫描@Lombok.NonNull
。请参见以下示例:
@lombok.RequiredArgsConstructor
public class LombokNoNull {
@lombok.NonNull
private String lombokRequires;
@javax.validation.constraints.NotNull
private String lombokDoesNotRequire;
@javax.annotation.Nonnull
private String lombokDoesNotRequireEither;
public static LombokNoNull newInstance() {
// for this class the required args constructor contains only field
// "lombokRequires"
return new LombokNoNull("stringRequiredByLombok");
}
}