是否有一种类型安全的方法将空列表作为参数传递给java?

时间:2011-09-06 20:22:24

标签: java list generics

以下代码给出了编译错误:

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

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

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

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

2 个答案:

答案 0 :(得分:22)

替换

method(Collections.emptyList());

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

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

答案 1 :(得分:5)

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

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