我正在使用 org.eclipse.jdt.annotation.NonNull 来添加静态空值分析的额外信息。我不知道如何正确地注释数组:
我测试过了:
public static void test(@NonNull String[] a) {
assert a != null;
}
public static void main(String[] args) {
test(null);
}
但是,Eclipse并未将test(null);
标记为错误。
答案 0 :(得分:9)
如果您使用的是Java 8,它看起来如下:
@NonNull Object [] o1;
o1 = null; // OK
o1 = new Object[1];
o1[0] = null; // NOT OK
Object @NonNull[] o2;
o2 = null; // NOT OK
o2 = new Object[1];
o2[0] = null; // OK
答案 1 :(得分:4)
- 我怎么能说数组引用是非空的?
醇>
你应该在类型声明之后放置@NonNull
(但在数组括号之前),例如,
public static void test(String @NonNull[] a) {
assert a != null;
}
- 怎么说数组由非空元素组成?
醇>
你原来的问题就是这样。
编辑:对于Java 8兼容性,语法必须稍微更改一下(相应地修改代码)。