タイプ

特別な T 演算子を使用して、java.lang.Class のインスタンス(型)を指定できます。静的メソッドは、この演算子も使用して呼び出されます。StandardEvaluationContext は TypeLocator を使用して型を検索し、StandardTypeLocator (交換可能)は java.lang パッケージを理解して構築されています。つまり、java.lang パッケージ内の型への T() 参照は完全に修飾する必要はありませんが、他のすべての型参照は完全修飾する必要があります。次の例は、T 演算子の使用方法を示しています。

  • Java

  • Kotlin

Class dateClass = parser.parseExpression("T(java.util.Date)").getValue(Class.class);

Class stringClass = parser.parseExpression("T(String)").getValue(Class.class);

boolean trueValue = parser.parseExpression(
		"T(java.math.RoundingMode).CEILING < T(java.math.RoundingMode).FLOOR")
		.getValue(Boolean.class);
val dateClass = parser.parseExpression("T(java.util.Date)").getValue(Class::class.java)

val stringClass = parser.parseExpression("T(String)").getValue(Class::class.java)

val trueValue = parser.parseExpression(
		"T(java.math.RoundingMode).CEILING < T(java.math.RoundingMode).FLOOR")
		.getValue(Boolean::class.java)

アプリケーションまたはフレームワークが独自の EvaluationContext を管理している場合は、SpEL 式パーサーがユーザー型を確実に見つけられるように、特定の ClassLoader を使用して StandardTypeLocator を手動で構成する必要がある場合があります。

例: spring-context モジュールの StandardBeanExpressionResolver は、対応する BeanFactory の Bean ClassLoader を使用して StandardTypeLocator を構成します。