我有一個java.lang.Object,我無法施放。在調試的時候,我注意到Object是一個不可修改的集合,所以我試圖將它轉換爲一個集合,但不起作用(ClassCastException)。相反,我試圖施放一個不可修改的集合
Set<SimpleUserBean> listOfSelectedItems = new HashSet<SimpleUserBean>(object)
當然這是不可能的,但無論是因爲對HashSet中沒有這樣的構造。
我該如何解決這個問題?
我有一個java.lang.Object,我無法施放。在調試的時候,我注意到Object是一個不可修改的集合,所以我試圖將它轉換爲一個集合,但不起作用(ClassCastException)。相反,我試圖施放一個不可修改的集合
Set<SimpleUserBean> listOfSelectedItems = new HashSet<SimpleUserBean>(object)
當然這是不可能的,但無論是因爲對HashSet中沒有這樣的構造。
我該如何解決這個問題?
如果對象是java.util.Collections.UnmodifiableSet
或其他任何實現Collection
,那麼你應該可以做new HashSet<>((Collection) object)
。這讓編譯器清楚你正在嘗試使用HashSet(Collection<? extends E> c)
構造函數。
集listOfSelectedItems =新的HashSet(對象)
這是不可能的。這個怎麼樣。
Set<SimpleUserBean> listOfSelectedItems = new HashSet<SimpleUserBean>();
listOfSelectedItems.addAll((Collection)object);
將java.util.Collections.UnmodifiableSet
轉換爲String arrays
。
用途:
object.getValue().toString().replace("[","").replace("]","").split(":")
假設object.getValue()
會給你java.util.Collections.UnmodifiableSet
爲什麼你不能投它?當你使用'System.out.print(object.getClass()。getName())'和'System.out.println(object.getClass()。getTypeName())'時,輸出是什麼?您還可以使用'類> interfaces = object.getClass()。getInterfaces'並在運行時獲取對象的信息,以查看您可以投射哪種超類型以便簡化工作。 –
您確定要將對象轉換爲Set而不是某種具體的Set? –
DJClayworth