我有一个我无法投射的java.lang.Object。在调试时我注意到Object是一个不可修改的集合,所以我试着将它强制转换为集合但是没有用(ClassCastException)。相反,我尝试了
Set<SimpleUserBean> listOfSelectedItems = new HashSet<SimpleUserBean>(object)
但当然这也不可能,因为HashSet没有这样的构造函数。
我将如何解决这个问题?
答案 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