パッケージ jakarta.el

クラス StaticFieldELResolver

java.lang.ObjectSE
jakarta.el.ELResolver
jakarta.el.StaticFieldELResolver

public class StaticFieldELResolver extends ELResolver
静的フィールド、列挙型定数、静的メソッドを解決するための ELResolver。また、コンストラクター呼び出しを特別なケースとして処理します。

リゾルバーは、通常 Jakarta Expression Language 実装によって生成される型 ELClass の基本オブジェクトを処理します。

導入:
Jakarta Expression Language 3.0
関連事項:
  • コンストラクターの詳細

    • StaticFieldELResolver

      public StaticFieldELResolver()
  • メソッドの詳細

    • getValue

      public ObjectSE getValue(ELContext context, ObjectSE base, ObjectSE property)

      静的フィールドの値を返します。

      ベースオブジェクトが ELClass のインスタンスであり、プロパティが String の場合、戻る前に、このリゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

      プロパティが ELClass で指定されたクラスのパブリック静的フィールドである場合、静的フィールドの値を返します。Enum 定数は、Enum オブジェクトの静的なパブリックフィールドであり、この特殊なケースです。
      次で指定:
      クラス ELResolvergetValue 
      パラメーター:
      context - この評価のコンテキスト。
      base - ELClass
      property - 静的フィールド名。
      戻り値:
      ELContext の propertyResolved プロパティが true に設定されている場合、静的フィールドの値。
      例外:
      NullPointerExceptionSE - コンテキストが null の場合。
      PropertyNotFoundException - 指定されたクラスが存在しない場合、フィールドがクラスのパブリック静的フィールドでない場合、またはフィールドにアクセスできない場合。
    • setValue

      public void setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE value)

      静的フィールドへの書き込みを試みます。

      ベースオブジェクトが ELClass のインスタンスであり、プロパティが String の場合、静的フィールドへの書き込みが許可されていないため、PropertyNotWritableException が常にスローされます。

      次で指定:
      クラス ELResolversetValue 
      パラメーター:
      context - この評価のコンテキスト。
      base - ELClass
      property - フィールドの名前
      value - クラスのフィールドに設定する値。
      例外:
      NullPointerExceptionSE - コンテキストが null の場合
      PropertyNotWritableException - ELClass のベースオブジェクトインスタンスと String の property インスタンスの場合
    • invoke

      public ObjectSE invoke(ELContext context, ObjectSE base, ObjectSE methodName, ClassSE<?>[] paramTypes, ObjectSE[] params)
      public static メソッドまたはクラスのコンストラクターを呼び出します。

      ベースオブジェクトが ELClass のインスタンスであり、メソッドが String である場合、戻る前に、リゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

      method で指定された静的な public メソッドを呼び出します。

      メソッドの選択に関係するプロセスは、BeanELResolver で使用されるプロセスと同じです。

      特殊なケースとして、メソッドの名前が "<init>" の場合、クラスのコンストラクターが呼び出されます。

      オーバーライド:
      クラス ELResolverinvoke 
      パラメーター:
      base - ELClass
      methodName - String に強制変換される場合、メソッドの単純な名前。
      paramTypes - メソッドの仮パラメーター型を宣言された順序で識別する Class オブジェクトの配列。メソッドにパラメーターがない場合は、空の配列を使用します。null にすることができます。その場合、メソッドの仮パラメーターの型は不明であると見なされます。
      params - メソッドに渡すパラメーター。パラメーターがない場合は null
      context - この評価のコンテキスト。
      戻り値:
      メソッド呼び出しの結果(メソッドに void 戻り値の型がある場合は null)。
      例外:
      MethodNotFoundException - 適切な方法が見つからない場合。
      ELException - (ベース、メソッド)解決の実行中に例外がスローされた場合スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。スローされた例外が InvocationTargetException の場合、その cause を抽出し、それを ELException コンストラクターに渡します。
    • getType

      public ClassSE<?> getType(ELContext context, ObjectSE base, ObjectSE property)
      静的フィールドの型を返します。

      ベースオブジェクトが ELClass のインスタンスであり、プロパティが文字列である場合、ELContext オブジェクトの propertyResolved プロパティは、戻る前にリゾルバーによって true に設定される必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は値が設定されていないと安全に想定できます。

      次で指定:
      クラス ELResolvergetType 
      パラメーター:
      context - この評価のコンテキスト。
      base - ELClass
      property - フィールドの名前
      戻り値:
      ELContext の propertyResolved プロパティが true に設定されている場合、null です。それ以外は未定義。
      例外:
      NullPointerExceptionSE - コンテキストが null の場合。
      PropertyNotFoundException - フィールドがクラスのパブリック静的フィールドでない場合、またはフィールドにアクセスできない場合。
    • isReadOnly

      public boolean isReadOnly(ELContext context, ObjectSE base, ObjectSE property)

      静的フィールドが書き込み可能かどうかを問い合わせます。

      ベースオブジェクトが ELClass のインスタンスであり、プロパティが文字列である場合、ELContext オブジェクトの propertyResolved プロパティは、戻る前にリゾルバーによって true に設定される必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は値が設定されていないと安全に想定できます。

      静的フィールドへの書き込みは許可されていないため、常に true を返します。

      次で指定:
      クラス ELResolverisReadOnly 
      パラメーター:
      context - この評価のコンテキスト。
      base - ELClass
      property - Bean の名前。
      戻り値:
      true
      例外:
      NullPointerExceptionSE - コンテキストが null の場合。
    • getCommonPropertyType

      public ClassSE<?> getCommonPropertyType(ELContext context, ObjectSE base)
      プロパティの型を返します。フィールド名は文字列であるため、常に String.class を返します。
      次で指定:
      クラス ELResolvergetCommonPropertyType 
      パラメーター:
      context - この評価のコンテキスト。
      base - ELClass
      戻り値:
      String.class.