java - 转换不可修改的集合

标签 java casting unmodifiable

我有一个无法转换的 java.lang.Object。调试时,我注意到该对象是一个不可修改的集合,因此我尝试将其转换为一个集合,但这不起作用(ClassCastException)。相反,我尝试了

Set<SimpleUserBean> listOfSelectedItems = new HashSet<SimpleUserBean>(object)

但是这当然也是不可能的,因为 HashSet 没有这样的构造函数。

我该如何解决这个问题?

最佳答案

如果对象是 java.util.Collections.UnmodifiableSet或任何其他实现 Collection 的东西,那么你应该能够做到 new HashSet<>((Collection) object) 。这使编译器清楚地知道您正在尝试使用 HashSet(Collection<? extends E> c)构造函数。

关于java - 转换不可修改的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671295/

相关文章:

java - 为什么 Collections 类中的不可修改方法不使用新元素创建集合?

java - Travis-CI可以自动生成并推送JavaDoc吗?

c++ - 为什么我从 enum 到 int 的转换在发布版本中不起作用?

Java不可修改的数组

java - 不可修改集合中的 ConcurrentModificationException

java - 将随机整数转换为 short 会给出均匀分布吗?

java - 在 Java 中调整垃圾收集参数

java - 在大数据(数千行和列)的情况下,为每个单元格设置 CellStyle() 会花费很长时间

java - 如何清除JTextPane中的所有样式?

java - 奇怪的 Java 转换异常。为什么我不能将 Long 转换为 Float?