13

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.

0

2 Answers 2

15

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
Sign up to request clarification or add additional context in comments.

Comments

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

You should've put @NonNull after the type declaration (but before the array brackets), eg.,

public static void test(String @NonNull[] a) {
    assert a != null;
}
  1. How can I say that an array consists of non-null elements?

Your original question has that.

EDIT: For Java 8 compatibility, the syntax had to be changed a little (modified above code accordingly).

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.