Package org.springframework.data.util
Class NullableUtils
java.lang.Object
org.springframework.data.util.NullableUtils
Utility methods to introspect nullability rules declared in packages, classes and methods.
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.
- Since:
- 2.0
- Author:
- Mark Paluch
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisExplicitNullable(MethodParameter methodParameter) Determine whether aMethodParameteris explicitly annotated to be considered nullable.static booleanisNonNull(Class<?> type, ElementType elementType) Determine whetherElementTypein the scope oftyperequires non-null values.static booleanisNonNull(AnnotatedElement element, ElementType elementType) Determine whetherElementTypein the scope ofAnnotatedElementrequires non-null values.static booleanisNonNull(Method method, ElementType elementType) Determine whetherElementTypein the scope ofMethodrequires non-null values.
-
Method Details
-
isNonNull
Determine whetherElementTypein the scope ofMethodrequires non-null values. Non-nullability rules are discovered from class and package annotations. Non-null is applied whenjavax.annotation.Nonnullis set tojavax.annotation.meta.When#ALWAYS.- Parameters:
method- the method to inspect.elementType- the element type.- Returns:
- true if
ElementTypeallows null values by default. - See Also:
-
isNonNull(Annotation, ElementType)
-
isNonNull
Determine whetherElementTypein the scope oftyperequires non-null values. Non-nullability rules are discovered from class and package annotations. Non-null is applied whenjavax.annotation.Nonnullis set tojavax.annotation.meta.When#ALWAYS.- Parameters:
type- the class to inspect.elementType- the element type.- Returns:
- true if
ElementTypeallows null values by default. - See Also:
-
isNonNull(Annotation, ElementType)
-
isNonNull
Determine whetherElementTypein the scope ofAnnotatedElementrequires non-null values. This method determines defaultjavax.annotation.Nonnull nullabilityrules from the annotated element- Parameters:
element- the scope of declaration, may be aPackage,Class, orMethod.elementType- the element type.- Returns:
- true if
ElementTypeallows null values by default.
-
isExplicitNullable
Determine whether aMethodParameteris explicitly annotated to be considered nullable. Nullability rules are discovered from method and parameter annotations. AMethodParameteris considered nullable whenjavax.annotation.Nonnullis set to one ofjavax.annotation.meta.When#UNKNOWN,javax.annotation.meta.When#NEVER, orjavax.annotation.meta.When#MAYBE.- Parameters:
methodParameter- the method parameter to inspect.- Returns:
- true if the parameter is nullable, false otherwise.
-