Java varargs 可以为 null 吗?

2022-09-01 15:54:58

我发现自己正在检查这一点,并询问是否有必要。我有这样的代码:

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

但后来我想知道...我是不是太谨慎了?我是否必须检查许多 == null?这在当前的Java版本中是否可能?如果是这样,如何?如果没有,我可能会继续检查,只是为了以防Oracle有一天决定它可以为空。


答案 1

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

使用不通过,它通过。数组是 Java 中的对象,因此对 类型有效。myMethod(null)new Object[]{null}nullnullObject[]

因此,您的空检查不会过于谨慎。


答案 2