如何注释数组 NonNull?
How to Annotate an Array NonNull?
我正在使用 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);
标记为错误。
如果您使用的是 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
- How can I say that an array reference is non-null?
你应该把@NonNull
放在类型声明之后(但是放在数组括号之前),例如,
public static void test(String @NonNull[] a) {
assert a != null;
}
- How can I say that an array consists of non-null elements?
你原来的问题是这样的。
编辑:为了 Java 8 兼容性,必须稍微更改语法(相应地修改上面的代码)。
我正在使用 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);
标记为错误。
如果您使用的是 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
- How can I say that an array reference is non-null?
你应该把@NonNull
放在类型声明之后(但是放在数组括号之前),例如,
public static void test(String @NonNull[] a) {
assert a != null;
}
- How can I say that an array consists of non-null elements?
你原来的问题是这样的。
编辑:为了 Java 8 兼容性,必须稍微更改语法(相应地修改上面的代码)。