クラス NullableUtils

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

@DeprecatedSE(since="4.0") public abstract class NullableUtils extends ObjectSE
使用すべきではありません。
4.0 以降、Spring Framework 独自の @Nullable および @NonNullApi アノテーションの代わりに、JSpecify アノテーションを完全に使用する Nullness が推奨されています。
パッケージ、クラス、メソッドで宣言された null 可能性ルールをイントロスペクトするユーティリティメソッド。

null 許容ルールは、NullableNonNullApi、JSR-305 javax.annotation.Nonnull アノテーションを使用して宣言されます。デフォルト(アノテーションを使用しない場合)では、パッケージとその型は、戻り値とメソッドパラメーターに null 値を許可するものとみなされます。null 許容ルールは、Spring の NonNullApi などの JSR-305 メタアノテーションを使用してパッケージにアノテーションを付与することで表現されます。パッケージ内のすべての型はパッケージルールを継承します。サブパッケージは null 許容ルールを継承しないため、サブパッケージ自体にアノテーションを付与する必要があります。

 @org.jspecify.annotations.NullMarked
 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 値を許可する場合は false。メソッドの戻り値の型が primitive の場合は true、メソッドが void の場合は false。
      関連事項:
      • 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 値を許可する場合は 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 - 宣言のスコープは、PackageSEClassSE、または MethodSE になります。null にすることもできます。
      elementType - 要素型。
      戻り値:
      ElementTypeSE がデフォルトで null 値を許可する場合、または指定された AnnotatedElementSE が null の場合は false です。
    • 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。