我在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

07-26 02:24