前天使用rhino 和js做了一个oracle的function,由于客户使用的是oracle 10,所以只支持jdk1.4.2的,其实很简单的,就是让oracle的函数支持使用javascript编写,实现过程较为简单,就是在传递参数时要求使用Object[] args , 可当我写如下代码时报错: Object [] args = {3,29}; 很明确地说不能将int 转换为Object ,以前好象没有这样的情况,查了好半天才想起原来在jdk1.4的时候,是不能把一个int 赋值给 Object , 我最早使用的jdk版本就是1.4.2的,可能太长时间了(2003年),记不得了。最后我重新看了1.4的文档搞清楚如下办法可以在int 和 Object 之间互转:
JDK1.5 之后版本:
直接这样写就行了
Object obj = 99;
int i = (Integer)obj;
JDK1.4及之前版本
Object obj = Integer.valueOf(20);
int i = ((Integer)obj).intValue();
也就是说oracle 10中使用的rhino话,在初始化int参数时要使用这样的方式:
Object [] args = {Integer.valueOf(3),Integer.valueOf(9)}; 而不能使用Object args={3,9};