0

提供された Spring Expression がブール値に評価できるかどうかを判断する方法が必要です。たとえば、"age == 18" のような式は SpEL でブール値を返すことができますが、"age + 10" のような式は返しません。この検証を行っている間は式しか手元にないことに注意してください(したがって、式を評価して戻り値の型を確認することはできません)

4

1 に答える 1

0

JavaCompilerを使用すると、こののようにメモリ内で式をコンパイルし、評価結果を取得できます。

インメモリでコンパイルされたメソッドは、次のようなことを行うことができます (式は String 変数 theExpressionToEvaluate です)。

StringWriter writer = new StringWriter();
PrintWriter out = new PrintWriter(writer);
out.println("public class HelloWorld {");
out.println("  public static void isBoolean() {");
out.println("try {boolean result = " + theExpressionToEvaluate + "; return result;}");
out.println("catch (ClassCastException e) { return false; }");    
于 2015-05-19T19:34:26.580 に答える