クラス MethodExpression
- java.lang.ObjectSE
-
- jakarta.el.Expression
-
- 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()
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract MethodInfo
getMethodInfo(ELContext context)
指定されたコンテキストに関連して式を評価し、実際に参照されているメソッドに関する情報を返します。MethodReference
getMethodReference(ELContext context)
このメソッド式が解決されるメソッドのMethodReference
を取得します。abstract ObjectSE
invoke(ELContext context, ObjectSE[] params)
文字列リテラルが式として指定されている場合、メソッドシグネチャーの予期される戻り値の型に強制変換された文字列リテラルを返します。boolean
isParametersProvided()
この MethodExpression がパラメーター付きで作成されたかどうかを返します。クラス jakarta.el.Expression から継承されたメソッド
equals, getExpressionString, hashCode, isLiteralText
メソッドの詳細
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