如何检查方法中的所有参数是否都是特定类型的?

时间:2016-02-05 15:04:57

标签: java types instanceof

我有一个采用可变数量参数的方法:

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

如何检查所有参数是否为double []?

3 个答案:

答案 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的答案。