有没有一种类型安全的方法可以在java中将空列表作为参数传递?

2022-09-02 21:09:30

下面的代码给出了编译错误:

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

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

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

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

?


答案 1

取代

method(Collections.emptyList());

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

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


答案 2

您可以指定类型参数,如下所示:

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