public abstract class MethodExpression extends Expression
Expression
。ExpressionFactory.createMethodExpression(javax.el.ELContext, java.lang.String, java.lang.Class<?>, java.lang.Class<?>[])
メソッドを使用して式文字列を解析し、解析された式をカプセル化する MethodExpression
の具象インスタンスを返すことができます。FunctionMapper
は評価時ではなく解析時に使用されるため、このクラスを使用して式を評価する必要はありません。ただし、評価時には ELContext
が必要です。
getMethodInfo(javax.el.ELContext)
および invoke(javax.el.ELContext, java.lang.Object[])
メソッドは、呼び出されるたびに式を評価します。ELContext
の ELResolver
は、トップレベルの変数を解決し、.
および []
演算子の動作を決定するために使用されます。2 つの方法のいずれでも、ELResolver.getValue(javax.el.ELContext, java.lang.Object, java.lang.Object)
メソッドを使用して、最後のプロパティを除くすべてのプロパティを解決します。これにより、メソッドが表示される base
オブジェクトが提供されます。base
オブジェクトが null の場合、PropertyNotFoundException
をスローする必要があります。最後の解決では、最終的な property
は String
に強制変換されます。これにより、検索されるメソッドの名前が提供されます。解析時に提供された名前と予期されるパラメーターに一致するメソッドが見つかり、照会または呼び出されます(この MethodExpression
で呼び出されたメソッドに応じて)。
Expression
javadoc の比較、直列化、不変性に関するメモを参照してください。
ELResolver
, Expression
, ExpressionFactory
, 直列化された形式 コンストラクターと説明 |
---|
MethodExpression() |
修飾子と型 | メソッドと説明 |
---|---|
abstract MethodInfo | getMethodInfo(ELContext context) 指定されたコンテキストに関連して式を評価し、実際に参照されているメソッドに関する情報を返します。 |
abstract ObjectSE | invoke(ELContext context, ObjectSE[] params) 文字列リテラルが式として指定されている場合、メソッドシグネチャーの予期される戻り値の型に強制変換された文字列リテラルを返します。 |
boolean | isParametersProvided() この MethodExpression がパラメーター付きで作成されたかどうかを返します。 |
boolean | isParmetersProvided() 使用すべきではありません。 |
equals, getExpressionString, hashCode, isLiteralText
cloneSE, finalizeSE, getClassSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public abstract MethodInfo getMethodInfo(ELContext context)
context
- この評価のコンテキスト MethodInfo
のインスタンス。NullPointerExceptionSE
- コンテキストが null
の場合 PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。MethodNotFoundException
- 適切な方法が見つからない場合。ELException
- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public abstract ObjectSE invoke(ELContext context, ObjectSE[] params)
ELException
は、expectedReturnType
が空の場合、または文字列リテラルから expectedReturnType
への強制型変換でエラーが発生した場合にスローされます(Jakarta Expression Language 仕様の「1.18 型変換」を参照)。文字列リテラルでない場合、指定されたコンテキストに関連して式を評価し、指定されたパラメーターを使用して見つかったメソッドを呼び出し、メソッド呼び出しの結果を返します。isLiteralText() または isParmetersProvided() が true の場合、このメソッドに渡されるパラメーターはすべて無視されます。context
- この評価のコンテキスト。params
- メソッドに渡すパラメーター。パラメーターがない場合は null
。void
戻り値の型がある場合は null
)。NullPointerExceptionSE
- コンテキストが null
の場合 PropertyNotFoundException
- 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。MethodNotFoundException
- 適切な方法が見つからない場合。ELException
- 文字列リテラルが指定され、MethodExpression の expectedReturnType が無効である場合、または文字列リテラルを expectedReturnType に強制変換するとエラーが発生する場合 (セクション「1.18 型変換」を参照)。ELException
- プロパティまたは変数の解決を実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。スローされた例外が InvocationTargetException
の場合は、その cause
を抽出し、ELException
コンストラクターに渡します。public boolean isParametersProvided()
このメソッドは、expr-a.expr-b(...)構文を使用して EL でパラメーターが指定されている場合にのみ、true
を返す必要があります。
true
、それ以外の場合は false
。@DeprecatedSE public boolean isParmetersProvided()
true
、それ以外の場合は false
。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.