我需要实例化一个作为字符串传递的函数,并且我为“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的连接,而不是算术总和......怎么可能?
答案 0 :(得分:0)
目前我已通过提供
解决了问题public static Double sommaDouble(Double a, Double b) {
return a+b;
}
在另一个班级。我正在寻找一个更好的解决方案,我想了解为什么“+”作为Java协会的方法执行连接运算符