投下一个不可修改的集合

时间:2015-06-05 16:21:02

标签: java casting unmodifiable

我有一个我无法投射的java.lang.Object。在调试时我注意到Object是一个不可修改的集合,所以我试着将它强制转换为集合但是没有用(ClassCastException)。相反,我尝试了

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

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

我将如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

  

设置listOfSelectedItems = new HashSet(object)

这是不可能的。怎么样。

Set<SimpleUserBean> listOfSelectedItems =  new HashSet<SimpleUserBean>();
listOfSelectedItems.addAll((Collection)object);

答案 2 :(得分:0)

java.util.Collections.UnmodifiableSet转换为String arrays

使用:

object.getValue().toString().replace("[","").replace("]","").split(":")

假设object.getValue()会给你java.util.Collections.UnmodifiableSet