是否有在我的 Java 程序中使用 Collection.EMPTY_LIST 的泛型友好方式。
我知道我可以自己声明一个,但我只是想知道 JDK 中是否有一种方法可以做到这一点。
类似于 users = Collections<User>.EMPTY_LIST;
最佳答案
通过执行以下操作:
List<User> users = Collections.emptyList();
由于分配的左侧,从 Collections.emptyList();
返回的列表的类型将被推断为 String
。但是,如果您不想进行此推断,则可以通过执行以下操作来明确定义它:
List<User> users = Collections.<User>emptyList();
在这个特定的例子中,这对大多数人来说似乎是多余的(事实上,我在野外看到的代码很少使用显式类型参数),但是对于一个带有签名的方法:void doStuff(List<String> users)
它对于使用显式类型参数调用 doStuff()
的人来说将是非常干净的,如下所示:
doStuff(Collections.<String>emptyList());
关于generics - 我可以在没有未经检查的异常的情况下使用 Collections.EMPTYLIST 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/169277/