我在Java中有一個Object [],並且想要將它轉換爲IProject [],這是一個Java接口(org.eclipse.core.resources.IProject),以便爲eclipse編寫插件。如何在Java中的Object []和接口(IProject [])之間進行轉換?
這可能嗎?
問候
我在Java中有一個Object [],並且想要將它轉換爲IProject [],這是一個Java接口(org.eclipse.core.resources.IProject),以便爲eclipse編寫插件。如何在Java中的Object []和接口(IProject [])之間進行轉換?
這可能嗎?
問候
您不能轉換陣列本身 - 陣列知道自己的插槽類型,所以你不能只投中Object[]
一個實例IProject[]
類型的表達式,即使發生了數組僅包含IProject
的實例(除非碰巧有一個類型爲Object[]
的變量實際上指向IProject[]
的實例)。
相反,你需要做一個新的陣列具有相同的內容:
Object[] objects;
IProject[] projects = new IProject[objects.length];
System.arraycopy(objects, 0, projects, 0, objects.length);
數組存儲動態類型檢查,因此,如果您Object[]
包含不屬於IProject
實例的任何對象,會得到一個ArrayStoreException
。
是在IProject
Object[]
實例對象?
謝謝,這工作! – kadrian