我有一个采用可变数量参数的方法:
public void test(Object[] ... args) {}
如何检查所有参数是否为double []?
答案 0 :(得分:2)
循环并确保每个Object []都是Double []。请注意,这里不能使用原始double,因为它不是Object。
boolean allDoubleArr = true;
for(Object[] o : args) {
if(!(o instanceof Double[])) {
allDoubleArr = false;
break;
}
}
答案 1 :(得分:0)
循环参数并检查:
if (obj instanceof Double)
Object []表示数组可以包含double和整数值。
答案 2 :(得分:0)
您可以通过将方法的签名更改为:
来使编译器静态类型进行检查public void test(Double[] ... args) {}
现在java编译器将强制执行它,以便只能使用test()
参数调用Double[]
。
如果你真的需要进行动态类型检查,那么我会投票给@George Mulligan的答案。