Вы не можете преобразовать сам массив - массивы знают тип своих слотов, поэтому вы не можете просто привести экземпляр Object[]
к выражению типа IProject[]
, даже если массив содержит только экземпляры IProject
(если только у вас нет переменной типа Object[]
, которая фактически указывает на экземпляр IProject[]
).
Вместо этого вам нужно создать новый массив с тем же содержимым:
Object[] objects;
IProject[] projects = new IProject[objects.length];
System.arraycopy(objects, 0, projects, 0, objects.length);
Хранилища массивов проверяются динамически, поэтому, если ваш Object[]
содержит объекты, не являющиеся экземплярами IProject
, вы получите ArrayStoreException
.