When you specify the parameter as the @NonNull annotation, the checker is able to issue compile-time warnings about possible run-time exceptions, which is its purpose. The Nullness Checker prevents this problem by warning you anytime that you may be accessing an uninitialized field. Because array levels are types and receivers have types, you can also write type annotations on them. Type qualifier refinement is always enabled, no matter how annotations on signatures got inserted in your source code.)Your choice of tool depends on what default annotation (see Section 3.3.2) your code uses.
Even though not all objects of the given type may be compared with ==, the specific objects that can reach a given comparison may be. The FindBugs choices make the FindBugs annotations less helpful to people, and much less useful for other tools. As a separate issue, the FindBugs analysis is also very imprecise. The Interning Checker (Chapter 5) guarantees that every expression whose type is an @Interned type evaluates to an interned value. Option 2: annotations appear in the .jar files.
For example, continuing the Nullness Checker example, if a particular variable is annotated as @Nullable but it actually never contains null at run time, then change the annotation to. See Section 24.4.5. -AinvariantArrays Make array subtyping invariant; that is, two arrays are subtypes of one another only if they have exactly the same element type. By default, the Checker Framework unsoundly permits covariant array subtyping, just as Java does. CustomLevel Parameters Parameter Name Type Description name String The name of the custom level.