generics - 我可以在没有未经检查的异常的情况下使用 Collections.EMPTYLIST 吗?

标签 generics java

是否有在我的 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/

相关文章:

java - 无法使用 "this"引用对象创建链表

java - Lambda 表达式抛出异常

C# 创建新 T()

java - 如何检查泛型类是否正在实现某个接口(interface)

java - 运行多线程

java - Jython 和 Python 的集成

java - 如何说服管理层重新格式化整个 Java 代码库是安全的

java - Generics-Type 参数如何工作?

java - 获取通用基础存储库的参数类型名称

generics - Kotlin 泛型函数