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.
 
 
 -