Checks if @NullMarked annotation is applied to a Java class.
When you apply @NullMarked to a module, package, class, or method, it means
that unannotated types in that scope are treated as if they were annotated with
@NonNull, with some exceptions for local variables and type variables. In code
covered by @NullMarked, String x means the same as @NonNull String x.
This standardizes the default annotation for all static checkers and compilers that support JSpecify annotations.
For more information, see https://jspecify.dev/docs/user-guide/#nullmarked.
Typically, projects should choose only one of the following approaches and not both:
AddNullMarkedToPackageInfo): Provides a concise way to
null-mark an entire package at once. However, there are some drawbacks to
relying on package-info.java in certain build environments, and it may
lack the “locality of reference” provided by class-level annotations.AddNullMarkedToClass): More robust and explicit, as the
annotation is visible directly on each class declaration. This requires more
annotations but can be clearer for readers.For a project, it is recommended to either nullmark all the classes or all of
the package-info files, but not both.
Suppress false positives by adding the suppression annotation @SuppressWarnings("AddNullMarkedToClass") to the enclosing element.