クラス NullableUtils
java.lang.ObjectSE
org.springframework.data.util.NullableUtils
パッケージ、クラス、メソッドで宣言された null 可能性ルールをイントロスペクトするユーティリティメソッド。
Nullability ルールは、NonNullApi、Nullable、JSR-305 javax.annotation.Nonnull アノテーションを使用して宣言されます。デフォルト(アノテーションは使用しない)では、パッケージとその型は、戻り値とメソッドパラメーターで null 値を許可すると見なされます。null 可能性ルールは、Spring の NonNullApi などの JSR-305 メタアノテーションでパッケージにアノテーションを付けることで表現されます。すべての型のパッケージは、パッケージルールを継承します。サブパッケージは null 可能性ルールを継承しないため、自身にアノテーションを付ける必要があります。
@org.springframework.lang.NonNullApi package com.example;
Nullable は、メソッドにそれぞれパラメーターにアノテーションを付けることにより、メソッドの戻り値またはメソッドのパラメーターに null 値を選択的に許可します。
public class ExampleClass {
String shouldNotReturnNull(@Nullable String acceptsNull, String doesNotAcceptNull) {
// …
}
@Nullable
String nullableReturn(String parameter) {
// …
}
}
javax.annotation.Nonnull は、メタアノテーションの作成に適しており、javax.annotation.Nonnull#when() を介して表現します。この場合、非 null 可能性が適用されます。
- 導入:
- 2.0
- 作成者:
- Mark Paluch
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明static booleanisExplicitNullable(MethodParameter methodParameter) MethodParameterが null 許容と見なされるように明示的にアノテーションが付けられているかどうかを判別します。static booleanisNonNull(ClassSE<?> type, ElementTypeSE elementType) typeのスコープ内のElementTypeSE が NULL 以外の値を必要とするかどうかを判別します。static booleanisNonNull(AnnotatedElementSE element, ElementTypeSE elementType) AnnotatedElementSE のスコープ内のElementTypeSE が NULL 以外の値を必要とするかどうかを判別します。static booleanisNonNull(MethodSE method, ElementTypeSE elementType) MethodSE のスコープ内のElementTypeSE が NULL 以外の値を必要とするかどうかを判別します。
メソッドの詳細
isNonNull
MethodSE のスコープ内のElementTypeSE が null 以外の値を必要とするかどうかを判別します。非 null 可能性ルールは、クラスとパッケージのアノテーションから検出されます。javax.annotation.Nonnullがjavax.annotation.meta.When#ALWAYSに設定されている場合、null 以外が適用されます。- パラメーター:
method- インスペクションする方法。elementType- 要素型。- 戻り値:
ElementTypeSE がデフォルトで null 値を許可する場合は false。メソッドの戻り値の型がprimitiveの場合は true、メソッドが void の場合は false。- 関連事項:
isNonNull(Annotation, ElementType)
isNonNull
typeのスコープ内のElementTypeSE が null 以外の値を必要とするかどうかを判別します。非 null 可能性ルールは、クラスとパッケージのアノテーションから検出されます。javax.annotation.Nonnullがjavax.annotation.meta.When#ALWAYSに設定されている場合、null 以外が適用されます。- パラメーター:
type- インスペクションするクラス。elementType- 要素型。- 戻り値:
ElementTypeSE が null 値を許可する場合は false。指定された型がprimitiveの場合は true。- 関連事項:
isNonNull(Annotation, ElementType)
isNonNull
@Contract("null, _ -> false") public static boolean isNonNull(@Nullable AnnotatedElementSE element, ElementTypeSE elementType) AnnotatedElementSE のスコープ内のElementTypeSE が null 以外の値を必要とするかどうかを判別します。このメソッドは、アノテーション付き要素からデフォルトのjavax.annotation.Nonnull nullabilityルールを決定します- パラメーター:
element- 宣言のスコープは、PackageSE、ClassSE、またはMethodSE になります。null にすることもできます。elementType- 要素型。- 戻り値:
ElementTypeSE がデフォルトで null 値を許可する場合、または指定されたAnnotatedElementSE が null の場合は false です。
isExplicitNullable
MethodParameterが null 許容と見なされるように明示的にアノテーションが付けられているかどうかを判別します。null 可能性ルールは、メソッドとパラメーターのアノテーションから検出されます。javax.annotation.Nonnullがjavax.annotation.meta.When#UNKNOWN、javax.annotation.meta.When#NEVER、javax.annotation.meta.When#MAYBEのいずれかに設定されている場合、MethodParameterは null 可能と見なされます。- パラメーター:
methodParameter- インスペクションするメソッドパラメーター。- 戻り値:
- パラメーターが null 許容の場合は true、それ以外の場合は false。