Javassist演员和连接问题

时间:2012-07-13 09:16:14

标签: java casting javassist

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

包装器使用JavaAssist库,使用object和method作为包装器对象的字段,以及允许我在包装器类之外使用该函数的方法。

我的麻烦是关于函数体语法,我有很多 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的连接,而不是算术总和......怎么可能?

1 个答案:

答案 0 :(得分:0)

目前我已通过提供

解决了问题
public static Double sommaDouble(Double a, Double b) {
    return a+b;
}

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