クラス NullableUtils

java.lang.ObjectSE
org.springframework.data.util.NullableUtils

public abstract class NullableUtils extends ObjectSE
パッケージ、クラス、メソッドで宣言された null 可能性ルールをイントロスペクトするユーティリティメソッド。

Nullability ルールは、NonNullApiNullable、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
関連事項:
  • メソッドの詳細

    • isNonNull

      public static boolean isNonNull(MethodSE method, ElementTypeSE elementType)
      MethodSE のスコープ内の ElementTypeSE が null 以外の値を必要とするかどうかを判別します。非 null 可能性ルールは、クラスとパッケージのアノテーションから検出されます。javax.annotation.Nonnull が javax.annotation.meta.When#ALWAYS に設定されている場合、null 以外が適用されます。
      パラメーター:
      method - インスペクションする方法。
      elementType - 要素型。
      戻り値:
      ElementTypeSE がデフォルトで null 値を許可する場合は true。
      関連事項:
      • isNonNull(Annotation, ElementType)
    • isNonNull

      public static boolean isNonNull(ClassSE<?> type, ElementTypeSE elementType)
      type のスコープ内の ElementTypeSE が null 以外の値を必要とするかどうかを判別します。非 null 可能性ルールは、クラスとパッケージのアノテーションから検出されます。javax.annotation.Nonnull が javax.annotation.meta.When#ALWAYS に設定されている場合、null 以外が適用されます。
      パラメーター:
      type - インスペクションするクラス。
      elementType - 要素型。
      戻り値:
      ElementTypeSE がデフォルトで null 値を許可する場合は true。
      関連事項:
      • isNonNull(Annotation, ElementType)
    • isNonNull

      public static boolean isNonNull(AnnotatedElementSE element, ElementTypeSE elementType)
      AnnotatedElementSE のスコープ内の ElementTypeSE が null 以外の値を必要とするかどうかを判別します。このメソッドは、アノテーション付き要素からデフォルトの javax.annotation.Nonnull nullability ルールを決定します
      パラメーター:
      element - 宣言の範囲は、PackageSEClassSEMethodSE の場合があります。
      elementType - 要素型。
      戻り値:
      ElementTypeSE がデフォルトで null 値を許可する場合は true。
    • isExplicitNullable

      public static boolean isExplicitNullable(MethodParameter methodParameter)
      MethodParameter が null 許容と見なされるように明示的にアノテーションが付けられているかどうかを判別します。null 可能性ルールは、メソッドとパラメーターのアノテーションから検出されます。javax.annotation.Nonnull が javax.annotation.meta.When#UNKNOWNjavax.annotation.meta.When#NEVERjavax.annotation.meta.When#MAYBE のいずれかに設定されている場合、MethodParameter は null 可能と見なされます。
      パラメーター:
      methodParameter - インスペクションするメソッドパラメーター。
      戻り値:
      パラメーターが null 許容の場合は true、それ以外の場合は false。