0

我需要实例化一个作为字符串传递的函数,并且我为“函数”对象编写了一个包装器,让我在定义函数后执行该函数。

包装器使用 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 的串联,而不是算术和......这怎么可能?

4

1 回答 1

0

现在我已经通过提供一个

public static Double sommaDouble(Double a, Double b) {
    return a+b;
}

在另一个班级。我正在寻找更好的解决方案,我想了解为什么 Javaassist 的方法将“+”作为连接运算符执行

于 2012-07-13T09:55:34.303 回答