我正在使用龙目岛来生成我的POJO。我有一堆用javax.annotation.Nonnull
注释的字段,我希望这个注释自动传输到构造函数。
但是,这并没有发生,龙目岛似乎完全省略了此注释,并且在为此字段使用@Nullable
值时不会生成警告。
当构造函数由 IDE 生成时 - 一切都按预期工作。这也适用于吸气者/二传手。
我尝试将javax.annotation.Nonnull
添加到lombok.copyableAnnotations
并添加javax.annotation.ParametersAreNonnullByDefault
注释,但都无济于事。
@Data
class TestObject {
@Nonnull private String nonnull;
}
TestObject testObject = new TestObject(null); <-- no warning
testObject.setNonnull(null); <-- warning generated
我希望在构造函数上收到与我在二传手上相同的警告。这是龙目岛的错误,无法实现的东西,还是我只是错过了什么?
这是因为龙目岛只"扫描"@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");
}
}