java - Java 可变参数可以为空吗?

标签 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 版本中都可能吗?如果可以,怎么做?如果不是,我可能会继续检查,以防万一 Oracle 决定有一天它可以为空。

最佳答案

我尝试使用 Java HotSpot(TM) 64 位服务器虚拟机,Linux 3.5.0-21-generic 上的 Java 1.8.0

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

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

关于java - Java 可变参数可以为空吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28271203/

相关文章:

java - "throw(e)"和 "throw e"之间的区别?

Scala - 是否可以编写具有可变参数的 HOF?

javascript - JS 对象空检查 - 奇怪的 JS 问题

java - 如何编写一个通用的 isEmpty 方法来检查是否为空?

java - 虚拟表和 ViewerComparator 上的默认排序问题

java - 如何替换 char 数组中的元音

java - ISO-8859-1、UTF-8 和西类牙语口音

c - 将类型作为参数,如 C 中的 va_arg

.net - C++/CLI中的变量参数列表

Java 消除空值检查会导致错误代码吗?