public abstract class NullableUtils extends Object
NonNullApi
and Nullable
and JSR-305
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) { // … } }
Nonnull
is suitable for composition of meta-annotations and expresses via
Nonnull.when()
in which cases non-nullability is applicable.NonNullApi
,
Nullable
,
Nonnull
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
Nonnull
is set to When.ALWAYS
.type
- the class 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
Nonnull
is set to 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 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
Nonnull
is set to one of When.UNKNOWN
,
When.NEVER
, or When.MAYBE
.methodParameter
- the method parameter to inspect.Copyright © 2011–2021 Pivotal Software, Inc.. All rights reserved.