public abstract class NullableUtils extends Object
Nullability rules are declared using NonNullApi, Nullable, and JSR-305
javax.annotation.Nonnull annotations. By default (no annotation use), a package and its types are considered
allowing null values in return values and method parameters. Nullability rules are expressed by annotating
a package with a JSR-305 meta annotation such as Spring's NonNullApi. All types of the package inherit the
package rule. Subpackages do not inherit nullability rules and must be annotated themself.
@org.springframework.lang.NonNullApi package com.example;
Nullable selectively permits null values for method return values or method parameters by
annotating the method respectively the parameters:
public class ExampleClass {
String shouldNotReturnNull(@Nullable String acceptsNull, String doesNotAcceptNull) {
// …
}
@Nullable
String nullableReturn(String parameter) {
// …
}
}
javax.annotation.Nonnull is suitable for composition of meta-annotations and expresses via
javax.annotation.Nonnull#when() in which cases non-nullability is applicable.
NonNullApi,
Nullable| Modifier and Type | Method and Description |
|---|---|
static boolean |
isExplicitNullable(MethodParameter methodParameter)
Determine whether a
MethodParameter is explicitly annotated to be considered nullable. |
static boolean |
isNonNull(AnnotatedElement element,
ElementType elementType)
Determine whether
ElementType in the scope of AnnotatedElement requires non-null values. |
static boolean |
isNonNull(Class<?> type,
ElementType elementType)
Determine whether
ElementType in the scope of type requires non-null values. |
static boolean |
isNonNull(Method method,
ElementType elementType)
Determine whether
ElementType in the scope of Method requires non-null values. |
public static boolean isNonNull(Method method, ElementType elementType)
ElementType in the scope of Method requires non-null values.
Non-nullability rules are discovered from class and package annotations. Non-null is applied when
javax.annotation.Nonnull is set to javax.annotation.meta.When#ALWAYS.method - the method to inspect.elementType - the element type.ElementType allows null values by default.isNonNull(Annotation, ElementType)public static boolean isNonNull(Class<?> type, ElementType elementType)
ElementType in the scope of type requires non-null values.
Non-nullability rules are discovered from class and package annotations. Non-null is applied when
javax.annotation.Nonnull is set to javax.annotation.meta.When#ALWAYS.type - the class to inspect.elementType - the element type.ElementType allows null values by default.isNonNull(Annotation, ElementType)public static boolean isNonNull(AnnotatedElement element, ElementType elementType)
ElementType in the scope of AnnotatedElement requires non-null values.
This method determines default javax.annotation.Nonnull nullability rules from the annotated elementelement - the scope of declaration, may be a Package, Class, or
Method.elementType - the element type.ElementType allows null values by default.public static boolean isExplicitNullable(MethodParameter methodParameter)
MethodParameter is explicitly annotated to be considered nullable. Nullability rules
are discovered from method and parameter annotations. A MethodParameter is considered nullable when
javax.annotation.Nonnull is set to one of javax.annotation.meta.When#UNKNOWN,
javax.annotation.meta.When#NEVER, or javax.annotation.meta.When#MAYBE.methodParameter - the method parameter to inspect.Copyright © 2011–2023 Pivotal Software, Inc.. All rights reserved.