java - 具有静态泛型的类型安全、泛型、空集合

标签 java collections

我尽可能返回空集合而不是 null。我使用 java.util.Collections 在两种方法之间切换:

return Collections.EMPTY_LIST;
return Collections.emptyList();

emptyList() 应该是类型安全的。但我最近发现:

return Collections.<ComplexObject> emptyList();
return Collections.<ComplexObject> singletonList(new ComplexObject());

等等

我在 Eclipse Package Explorer 中看到这个方法:

<clinit> () : void

但我没有在源代码 (1.5) 中看到这是如何完成的。这种神奇的愚蠢行为是怎么发生的!!

编辑: 静态Generic类型是如何实现的?

最佳答案

return Collections.<ComplexObject> emptyList();

使用它可以消除来自 Eclipse 的关于非通用集合的警告。

话虽如此,由于空列表是不可变的并且 Java 在编译时删除泛型类型,所以类型化空列表在功能上将与非类型化空列表相同。

关于java - 具有静态泛型的类型安全、泛型、空集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625579/

相关文章:

java - lwjgl 实体坐标出现问题

java - 无法使用相对 xpath 找到元素

java - 如果父方法抛出检查异常,那么是否必须在子类中抛出相同的异常?

java - 使用 SSL 的 Netty 4 解码器错误

java - 不需要 Autowiring ServletRequest 但抛出 BeanCreationException

java - Collections.sort 方法有时会在多线程环境中抛出 ConcurrentModificationException。列表未在结构上进行修改

c# - C# 中的类名中的尖括号有什么作用?

c# - 如何将本地集合与 Linq-to-SQL 一起使用?

c# - 显示嵌套的 SortedDictionary 中的元素

c# - 我可以有条件地使用 LINQ 创建 IEnumerable 吗?