我在Java中有一个Object [],并想将其转换为IProject [],这是Java接口(org.eclipse.core.resources.IProject),以便为Eclipse编写插件。
这可能吗?
问候
最佳答案
您无法转换数组本身-数组知道其插槽的类型,因此即使数组恰好仅包含Object[]的实例转换为类型IProject[]
的表达式cc>(除非您碰巧有一个IProject
类型的变量实际上指向Object[]
的实例)。
相反,您需要创建一个具有相同内容的新数组:
Object[] objects;
IProject[] projects = new IProject[objects.length];
System.arraycopy(objects, 0, projects, 0, objects.length);
数组存储是经过动态类型检查的,因此,如果您的
IProject[]
包含不是Object[]
实例的任何对象,则会得到一个IProject
。