2016-02-05 190 views

回答

2

循环并确保每个Object []是Double []。注意你不能在这里使用原始的double,因为这不是一个Object。

boolean allDoubleArr = true; 
for(Object[] o : args) { 
    if(!(o instanceof Double[])) { 
     allDoubleArr = false; 
     break; 
    } 
} 
+0

@DalaiLlama它是一个Double []目的,因为当前问题是该方法获得Object []的可变参数,所以我循环遍历每个数组。 –

+0

double []是一个对象。双重不是一个对象。 – Samuel

+0

@Samuel如果你读了我的回答,我记下了这一点。 –

0

遍历的参数,并检查:

if (obj instanceof Double) 

对象[]意味着阵列可以容纳双,以及整数值。

0

可以使编译器静态类型,通过改变你的方法的签名本签:

public void test(Double[] ... args) {} 

现在Java编译器将强制执行它,以便test()只能Double[]参数来调用。

如果你真的需要做一个动态类型检查,那么我投票支持@George Mulligan的回答。

相关问题