数値を取得してみる。
で、結果。
import ognl.*;
import java.util.*;public class OgnlSample
{
public static void main(String[] args) throws Exception{
// 数値
String exp1 = "1";
String exp2 = "2147483647";
Object val1 = Ognl.getValue(exp1, (Object) null);
Object val2 = Ognl.getValue(exp2, (Object) null);
System.out.println(exp1 + ": " + dump(val1));
System.out.println(exp2 + ": " + dump(val2));
}private static String dump(Object obj) {
StringBuffer buf = new StringBuffer();
buf.append(obj);if(obj != null) {
buf.append("(" + obj.getClass().getName() + ")");
}return buf.toString();
}
}
「2147483647」→「2147483648」にすると…
1: 1(java.lang.Integer)
2147483647: 2147483647(java.lang.Integer)
数値は、intの範囲内…と。
java.lang.NumberFormatException: For input string: "2147483648"
at java.lang.NumberFormatException.forInputString(Unknown Source)
...