假设我有一个具有不变量的类,某个实例变量永远不会为null。我还想正确使用jsr305 null注释。该类作为API公开,因此我不能依赖注释来防止空值;我还需要在运行时检查null。
public final class NonNullString {
private final String string;
public NonNullString(String string) {
if (string == null) throw new NullPointerException();
this.string = string;
}
public String getString() {
return string;
}
}
将null注释应用于此类的最佳方法是什么?应用于构造函数参数的@javax.annotation.Nonnull
描述了我的意图,但Eclipse的null分析警告null检查是死代码。如果有必要,我可以抑制Eclipse的警告,但警告让我想知道是否有更好的方法来使用注释。
编辑:我问的是如何处理可能不使用空注释的客户端代码和使用空注释的代码之间的接口。