Java Lombok-delombok期权没有';t为@Nonnull检查生成代码
所以,我想做的是,用delombok特性生成空检查代码,但它不起作用:Java Lombok-delombok期权没有';t为@Nonnull检查生成代码,java,lombok,Java,Lombok,所以,我想做的是,用delombok特性生成空检查代码,但它不起作用: c:\lib>java -jar lombok.jar delombok -p LombokTest.java package com.some.test; import lombok.*; import java.io.Serializable; public class LombokTest implements Serializable { public String text;
c:\lib>java -jar lombok.jar delombok -p LombokTest.java
package com.some.test;
import lombok.*;
import java.io.Serializable;
public class LombokTest implements Serializable {
public String text;
public LombokTest( @NonNull Object text) {
this.text = text.toString();
}
public int setText( @ NonNull String anotherText) {
this.text = anotherText;
return anotherText.length();
}
}
c:\lib>java -jar lombok.jar -version
v1.16.6 "Candid Duck"
c:\lib>java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
有什么想法吗?这是一个bug,我报告了这一个,并且得到了很好的修复:
这个问题没有解决办法。您只能等待一个新的lombok版本。在本地进行了一些测试之后,我想说这看起来肯定像是delombok中的一个bug。你在他们的论坛上留言了吗?好的,报道。在这个问题得到解决之前,我有没有什么可以使用的解决方法?如果有,我还没有找到。值得一提的是,您可以手动替换@NonNull注释,并在代码中删除对
java.util.Objects.requirennull(T obj,String message)
的调用。如果obj
为空,它将抛出一个NPE,其中包含您提供的任何错误消息,就像@NonNull一样。谢谢您的回复,大卫!当然,这是可能的,但我的目标是摆脱所有这些检查,只使用注释替换它们。