25

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

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

但后来我想……我是不是太谨慎了?我必须检查是否many == null?这在任何当前的 Java 版本中都可能吗?如果是这样,怎么做?如果不是,我可能会继续检查,以防万一甲骨文决定有一天它可能为空。

4

1 回答 1

30

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

使用myMethod(null)没有通过new Object[]{null},它通过了null数组是 Java 中的对象,因此null对 type 有效Object[]

因此,您的 nullcheck 并不过分谨慎。

于 2015-02-02T04:47:58.463 回答