数字 '0'(零)无法在后端转换为双精度



我正在通过 struts 框架将一组数字从 flex 前端发送到后端,作为

    var knobValues:Array=new Array();
        for(var i:int=0;i<parXmlList.length();i++)
        {
          knobValues[i]=parBox[i].knob.value;
        }
  calcEnergy.send(knobValues);

其中 as knob.value 的类型为 Numbers

如果数组包含数字"0",则会发生以下错误。错误出在相应操作类的 setter 方法中。当数组不包含"0"时,不会出现任何错误...

Error setting value
Method "setKnobValues" failed for object com.tcs.infra.ecm.action.SaveScenarioAction@8f0064 [java.lang.NoSuchMethodException: setKnobValues([Ljava.lang.String;)]

操作类中的 Setter 方法...

public void setKnobValues(double[] knobValues) 
{
    this.knobValues = knobValues;
}

方法 setKnobValues() 需要类型为 double[]double数组)的参数,并且您正在根据错误消息向其传递一个String数组。

java.lang.NoSuchMethodException: setKnobValues([Ljava.lang.String;)

看来您的版本不兼容。

编译时.class与运行时不同(假设此代码编译正常)。

最后,我以某种方式设法做到了这一点...似乎将 0 理解为零存在问题,在进入 Action 类之前,它正在中间转换为字符串......

因此,我不是将值作为 []double 发送,而是作为逗号(,) 分隔的字符串发送并在后端对其进行标记......

感谢您的回应:)

最新更新