我可以使用Collections.EMPTY_LIST取消选中的异常情况吗?

2022-09-03 09:55:14

在我的Java程序中是否有泛型友好的方式使用Collection.EMPTY_LIST。

我知道我可以自己声明一个,但我只是好奇地想知道JDK中是否有办法做到这一点。

类似的东西users = Collections<User>.EMPTY_LIST;


答案 1

通过执行以下操作:

List<User> users = Collections.emptyList();

返回的列表的类型将被推断为由于分配的左侧。但是,如果您不希望有此推断,则可以通过执行以下操作来显式定义它:Collections.emptyList();String

List<User> users = Collections.<User>emptyList(); 

在这个特定的例子中,这对大多数人来说可能是多余的(事实上,我在野外看到很少使用显式类型参数的代码),但是对于带有签名的方法:使用显式类型参数调用它是完全干净的,如下所示:void doStuff(List<String> users)doStuff()

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

答案 2
List<User> users = Collections.emptyList();

推荐