import java.util.LinkedList;
import java.util.List;
import org.checkerframework.checker.nullness.qual.*;
/**
* This class illustrates use of nullness type annotations. The class doesn't do anything -- it is
* merely meant to be compiled. Compilation will produce warning messages.
*
* <p>There are two related files that differ only slightly: {@link NullnessExample}, an example of
* correct use, and {@link NullnessExampleWithWarnings}, an example of incorrect use. See the
* Nullness Checker documentation for larger examples of annotated code.
*/
public class NullnessExampleWithWarnings {
public void example() {
// In general, you do not have to annotate local variables, because the
// Nullness Checker infers such annotations. It is written here in the
// example for emhpasis.
@NonNull String foo = "foo";
String bar = null;
foo = bar;
bar = foo;
}
public /*@NonNull*/ String exampleGenerics() {
List</*@NonNull*/ String> foo = new LinkedList</*@NonNull*/ String>();
List<String> bar = foo;
String quux = null;
foo.add(quux);
foo.add("quux");
@NonNull String baz = foo.get(0);
return baz;
}
}