龙目岛生成构造函数,没有@Nonnull注释



我正在使用龙目岛来生成我的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");
    }
}

最新更新