我编写了以下代码,但无法将Object强制转换为Double。
Object[] args = new Object[3];
args[0]=Double.parseDouble(jTextField1.getText());
args[1]=Double.parseDouble(jTextField3.getText());
args[2]=Double.parseDouble(jTextField5.getText());
Object[] a = proxy.returningFeval("Combined", 1, args);
Double[] stra = new Double[a.length];
for(int i=0;i<a.length;i++){
stra[i] = (Double)a[i];
System.out.println("The value is :"+stra[i]);
}
答案 0 :(得分:1)
目前尚不清楚a
元素的实际类型是什么 - 我只能说它们中至少有一个是double[]
,而不是double
或者Double
。
如果您希望a
中的所有内容都为double[]
,则可以直接将演员表更改为
double[] straArr = (double[]) a[i];
然后使用
打印System.out.println("The value is :"+Arrays.asString(straArr));
但是,如果元素是异构类型的,则需要使用instanceof
个检查:
if (a[i] instanceof double[]) {
// ...
} else {
// Handle other types.
}
答案 1 :(得分:0)
通常,您可以在赋值行中中断执行,计算表达式(在您的情况下为:proxy.returningFeval("Combined", 1, args)
)并识别返回值的实际类型。