クラス TypeConverter
例: 文字列を MyDate のインスタンスに変換するには、次のように記述できます。
ELProcessor elp = new ELProcessor();
elp.getELManager().addELResolver(new TypeConverter() {
Object convertToType(ELContext context, Object obj, Class<?> type) {
if ((obj instanceof String) && type == MyDate.class) {
context.setPropertyResolved(obj, type);
return (obj == null)? null: new MyDate(obj.toString());
}
return null;
}
};
- 導入:
- Jakarta Expression Language 3.0
コンストラクターの概要
コンストラクター方法の概要
修飾子と型メソッド説明abstract <T> TconvertToType(ELContext context, ObjectSE obj, ClassSE<T> targetType) オブジェクトを特定の型に変換します。ClassSE<?>getCommonPropertyType(ELContext context, ObjectSE base) baseオブジェクトを指定して、このリゾルバーがproperty引数に対して受け入れる最も一般的な型を返します。ClassSE<?>指定されたbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)メソッドへの将来の呼び出しでvalueパラメーターとして渡されるオブジェクトに受け入れられる最も一般的な型を識別しようとします。指定されたbaseオブジェクトで指定されたpropertyオブジェクトを解決しようとします。booleanisReadOnly(ELContext context, ObjectSE base, ObjectSE property) 特定のbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)の呼び出しが常に失敗するかどうかを判断しようとします。void指定されたbaseオブジェクトに指定されたpropertyオブジェクトの値を設定しようとします。クラス jakarta.el.ELResolver から継承されたメソッド
invoke
コンストラクターの詳細
TypeConverter
public TypeConverter()
メソッドの詳細
getValue
クラスからコピーされた説明:ELResolver指定されたbaseオブジェクトで指定されたpropertyオブジェクトを解決しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。- 次で指定:
- クラス
ELResolverのgetValue - パラメーター:
context- この評価のコンテキスト。base- プロパティ値が返されるベースオブジェクト、またはトップレベル変数を解決するnull。property- 解決するプロパティまたは変数。- 戻り値:
ELContextのpropertyResolvedプロパティがtrueに設定されている場合、変数またはプロパティ解決の結果。それ以外は未定義。
getType
クラスからコピーされた説明:ELResolver指定されたbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)メソッドへの将来の呼び出しでvalueパラメーターとして渡されるオブジェクトに受け入れられる最も一般的な型を識別しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。これは、常に
getValue().getClass()と同じではありません。例:ArrayELResolverの場合、getTypeメソッドは配列のエレメント型を返します。これは、指定された配列エレメントに現在ある実際のエレメントの型のスーパークラスである可能性があります。リゾルバーまたはプロパティが読み取り専用の場合、このメソッドは
nullを返す必要があります。- 次で指定:
- クラス
ELResolverのgetType - パラメーター:
context- この評価のコンテキスト。base- プロパティ値を分析するベースオブジェクト、またはトップレベル変数を分析するnull。property- 受け入れ可能な型を返すプロパティまたは変数。- 戻り値:
ELContextのpropertyResolvedプロパティがtrueに設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型はnullでなければなりません。それ以外は未定義
setValue
クラスからコピーされた説明:ELResolver指定されたbaseオブジェクトに指定されたpropertyオブジェクトの値を設定しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は値が設定されていないと安全に想定できます。- 次で指定:
- クラス
ELResolverのsetValue - パラメーター:
context- この評価のコンテキスト。base- プロパティ値を設定する基本オブジェクト、またはトップレベル変数を設定するnull。property- 設定するプロパティまたは変数。value- プロパティまたは変数に設定する値。
isReadOnly
クラスからコピーされた説明:ELResolver特定のbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)の呼び出しが常に失敗するかどうかを判断しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。- 次で指定:
- クラス
ELResolverのisReadOnly - パラメーター:
context- この評価のコンテキスト。base- プロパティ値を分析するベースオブジェクト、またはトップレベル変数を分析するnull。property- 読み取り専用ステータスを返すプロパティまたは変数。- 戻り値:
ELContextのpropertyResolvedプロパティがtrueに設定されている場合、プロパティが読み取り専用の場合はtrue、そうでない場合はfalse。それ以外は未定義。
getCommonPropertyType
クラスからコピーされた説明:ELResolverbaseオブジェクトが指定された場合、このリゾルバーがproperty引数に対して受け入れる最も一般的な型を返します。この方法の 1 つの用途は、ツールが自動補完を支援することです。これは、ツールが自動補完を支援し、リゾルバーが配列への整数インデックスなどのプリミティブ値を受け入れることを表現する方法も提供します。例:
ArrayELResolverはintをpropertyとして受け入れるため、戻り値はInteger.classになります。- 次で指定:
- クラス
ELResolverのgetCommonPropertyType - パラメーター:
context- この評価のコンテキスト。base- 最も一般的なプロパティ型を返す基本オブジェクト、またはこのリゾルバーが評価できるトップレベルの変数のセットを列挙するnull。- 戻り値:
- この
ELResolverが指定されたbaseオブジェクトの処理方法を認識していない場合はnull。それ以外の型のpropertyが受け入れられる場合はObject.class。それ以外の場合は、指定されたbaseで受け入れられる最も一般的なproperty型。
convertToType
オブジェクトを特定の型に変換します。変換中にエラーが発生すると、
ELExceptionがスローされます。- オーバーライド:
- クラス
ELResolverのconvertToType - パラメーター:
context- この評価のコンテキスト。obj- 変換するオブジェクト。targetType- 変換のターゲット型。- 戻り値:
targetTypeに変換されたオブジェクト- 例外:
ELException- エラーが発生した場合にスローされます。