Как конвертировать между Object [] и интерфейсом (IProject []) в Java? - PullRequest
1 голос
/ 31 августа 2011

У меня есть Object [] в Java и я хочу преобразовать его в IProject [], который является Java-интерфейсом (org.eclipse.core.resources.IProject), чтобы написать плагин для eclipse.

Возможно ли это?

С уважением

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Вы не можете преобразовать сам массив - массивы знают тип своих слотов, поэтому вы не можете просто привести экземпляр Object[] к выражению типа IProject[], даже если массив содержит только экземпляры IProject (если только у вас нет переменной типа Object[], которая фактически указывает на экземпляр IProject[]).

Вместо этого вам нужно создать новый массив с тем же содержимым:

Object[] objects;
IProject[] projects = new IProject[objects.length];
System.arraycopy(objects, 0, projects, 0, objects.length);

Хранилища массивов проверяются динамически, поэтому, если ваш Object[] содержит объекты, не являющиеся экземплярами IProject, вы получите ArrayStoreException.

2 голосов
/ 31 августа 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...