Vertex Vertex - 1 month ago 10
Java Question

How to Annotate an Array NonNull?

I'm using org.eclipse.jdt.annotation.NonNull to add extra information for static null analysis. I donn't know how to annotate arrays correctly:


  1. How can I say that an array reference is non-null?

  2. How can I say that an array consists of non-null elements?



I've tested:

public static void test(@NonNull String[] a) {
assert a != null;
}

public static void main(String[] args) {
test(null);
}


However, Eclipse doesn't mark
test(null);
as wrong.

Answer

If you 're using Java 8, it looks as follows:

@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
Comments