【问题标题】:Is there a type-safe way to pass an empty list as an argument in java?是否有一种类型安全的方法可以在 java 中将空列表作为参数传递?
【发布时间】:2011-09-06 20:22:24
【问题描述】:

以下代码给出编译错误:

public void method(List<String> aList) {}

public void passEmptyList() {
    method(Collections.emptyList());
}

有没有办法将空列表传递给method而不

  • 使用中间变量
  • 铸造
  • 创建另一个列表对象,例如new ArrayList&lt;String&gt;()

?

【问题讨论】:

    标签: java list generics


    【解决方案1】:

    替换

    method(Collections.emptyList());
    

    method(Collections.<String>emptyList());
    

    . 之后的&lt;String&gt;emptyList 的类型参数的显式绑定,因此它将返回List&lt;String&gt; 而不是List&lt;Object&gt;

    【讨论】:

      【解决方案2】:

      你可以像这样指定类型参数:

      public void passEmptyList() {
          method(Collections.<String>emptyList());
      }
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2012-04-01
        • 2019-04-23
        • 2020-11-05
        • 2010-10-05
        • 1970-01-01
        • 2011-01-16
        • 1970-01-01
        • 2017-02-28
        相关资源
        最近更新 更多