パッケージ jakarta.el

クラス MethodExpression

  • 実装されているすべてのインターフェース:
    SerializableSE

    public abstract class MethodExpression
    extends Expression
    オブジェクトのメソッドを参照する Expression

    ExpressionFactory.createMethodExpression(jakarta.el.ELContext, java.lang.String, java.lang.Class<?>, java.lang.Class<?>[]) メソッドを使用して式文字列を解析し、解析された式をカプセル化する MethodExpression の具象インスタンスを返すことができます。FunctionMapper は評価時ではなく解析時に使用されるため、このクラスを使用して式を評価する必要はありません。ただし、評価時には ELContext が必要です。

    getMethodInfo(jakarta.el.ELContext) および invoke(jakarta.el.ELContext, java.lang.Object[]) メソッドは、呼び出されるたびに式を評価します。ELContext の ELResolver は、トップレベルの変数を解決し、. および [] 演算子の動作を決定するために使用されます。2 つの方法のいずれでも、ELResolver.getValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object) メソッドを使用して、最後のプロパティを除くすべてのプロパティを解決します。これにより、メソッドが表示される base オブジェクトが提供されます。base オブジェクトが null の場合、PropertyNotFoundException をスローする必要があります。最後の解決では、最終的な property は String に強制変換されます。これにより、検索されるメソッドの名前が提供されます。解析時に提供された名前と予期されるパラメーターに一致するメソッドが見つかり、照会または呼び出されます(この MethodExpression で呼び出されたメソッドに応じて)。

    Expression javadoc の比較、直列化、不変性に関するメモを参照してください。

    導入:
    Jakarta Server Pages 2.1
    関連事項:
    ELResolver, Expression, ExpressionFactory, 連載形式
    • コンストラクターの詳細

      • MethodExpression

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

      • getMethodInfo

        public abstract MethodInfo getMethodInfo​(ELContext context)
        指定されたコンテキストに関連して式を評価し、実際に参照されているメソッドに関する情報を返します。
        パラメーター:
        context - この評価のコンテキスト
        戻り値:
        式が評価されたメソッドに関する情報を含む MethodInfo のインスタンス。
        例外:
        NullPointerExceptionSE - コンテキストが null の場合
        PropertyNotFoundException - 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。
        MethodNotFoundException - 適切な方法が見つからない場合。
        ELException - プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
      • invoke

        public abstract ObjectSE invoke​(ELContext context,
                                      ObjectSE[] params)
        文字列リテラルが式として指定されている場合、メソッドシグネチャーの予期される戻り値の型に強制変換された文字列リテラルを返します。ELException は、expectedReturnType が空の場合、または文字列リテラルから expectedReturnType への強制型変換でエラーが発生した場合にスローされます(Jakarta Expression Language 仕様の「1.18 型変換」を参照)。文字列リテラルでない場合、指定されたコンテキストに関連して式を評価し、指定されたパラメーターを使用して見つかったメソッドを呼び出し、メソッド呼び出しの結果を返します。isLiteralText() または isParametersProvided() が true の場合、このメソッドに渡されるパラメーターはすべて無視されます。
        パラメーター:
        context - この評価のコンテキスト。
        params - メソッドに渡すパラメーター。パラメーターがない場合は null
        戻り値:
        メソッド呼び出しの結果(メソッドに void 戻り値の型がある場合は null)。
        例外:
        NullPointerExceptionSE - コンテキストが null の場合
        PropertyNotFoundException - 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。
        MethodNotFoundException - 適切な方法が見つからない場合。
        ELException - 文字列リテラルが指定され、MethodExpression の expectedReturnType が無効である場合、または文字列リテラルを expectedReturnType に強制変換するとエラーが発生する場合 (セクション「1.18 型変換」を参照)。
        ELException - プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。スローされた例外が InvocationTargetException の場合は、その cause を抽出し、ELException コンストラクターに渡します。
      • isParametersProvided

        public boolean isParametersProvided()
        この MethodExpression がパラメーター付きで作成されたかどうかを返します。

        このメソッドは、expr-a.expr-b(...)構文を使用して EL でパラメーターが指定されている場合にのみ、true を返す必要があります。

        戻り値:
        MethodExpression がパラメーター付きで作成された場合は true、それ以外の場合は false
        導入:
        Jakarta Expression Language 2.2
      • getMethodReference

        public MethodReference getMethodReference​(ELContext context)
        このメソッド式が解決されるメソッドの MethodReference を取得します。
        パラメーター:
        context - この評価の EL コンテキスト
        戻り値:
        このデフォルトの実装は常に null を返します
        例外:
        NullPointerExceptionSE - 提供されたコンテキストが null の場合
        PropertyNotFoundException - 一致が見つからなかった、または一致が見つかったが読み取れなかったためにプロパティ / 変数の解決に失敗した場合
        MethodNotFoundException - 一致する方法が見つからない場合
        ELException - プロパティの解決中に例外スローをラップします
        導入:
        エル 5.0