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

tb1*_*189 18 java generics list

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

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

public void passEmptyList() {
    method(Collections.emptyList());
}
Run Code Online (Sandbox Code Playgroud)

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

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

Mik*_*uel 22

更换

method(Collections.emptyList());
Run Code Online (Sandbox Code Playgroud)

method(Collections.<String>emptyList());
Run Code Online (Sandbox Code Playgroud)

<String>之后的.是一个明确的绑定emptyList的类型参数,所以它会返回一个List<String>的替代List<Object>.


sbl*_*ndy 5

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

public void passEmptyList() {
    method(Collections.<String>emptyList());
}
Run Code Online (Sandbox Code Playgroud)