Java varargs可以为null吗?

时间:2015-02-02 04:37:34

标签: java variadic-functions null-check

我发现自己在检查这件事并询问是否有必要。我有这样的代码:

public Object myMethod(Object... many) {
  if (many == null || many.length == 0)
    return this;
  for (Object one : many)
    doSomethingWith(one);
  return that;
}

但后来我想知道......我是否过于谨慎? 我是否必须检查是否many == null?在任何当前的Java版本中都有可能吗?如果是这样,怎么样?如果没有,我可能会继续检查,只是为了防止以后甲骨文认为有一天它可以为空。

1 个答案:

答案 0 :(得分:13)

我用Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0 on Linux 3.5.0-21-generic

尝试了

使用myMethod(null)未通过new Object[]{null},它会传递nullArrays are objects in Java因此nullObject[]类型有效。

因此,您的nullcheck不会过于谨慎。