我需要实例化一个作为字符串传递的函数,并且我为“函数”对象编写了一个包装器,让我在定义函数后执行该函数。
包装器使用 JavaAssist 库,使用对象和方法作为包装器对象的字段,以及让我在包装器类之外使用函数的方法。
我的麻烦在于函数体语法,我有很多
java.lang.VerifyError: (class: MyClass, method: myMethod signature: (*my signature, unimportant *) Expecting to find *a primitive type* on stack
与即时演员表相关,例如
Double c = (double) intVariable;
我解决了(不是很好的解决方案,但它正在工作)避免那些强制转换并总是实例化定义类型的变量
Double c = new Double( (String) intVariable.toString() );
现在我有另一个问题,它让我发疯:这是字符串的内容
Double t2 = new Double ( (String) parametri.get("pigreco").toString() );
Double t3 = new Double ( (String) (new Integer(2)).toString() );";
Double mysum = t2;
mysum+= t3;
return my sum;
t2.getClass() 和 t3.getClass() 返回 java.lang.Double 但 mysum 是 t2 和 t3 的串联,而不是算术和......这怎么可能?