Can't cast or instanceof to true from Object to IProject || Java Eclipse Plugin-Development -
why can not cast content array of type object, eclipse framework method getting selection of bundle explorer returns, iproject? instanceof returns false , casting without check causes exception. debugger shows content of object[]-array have instance-variables , of iproject-type:
private list<iproject> getvalidselectedprojects(iworkbenchwindow window) { final iselectionservice service = window.getselectionservice(); final istructuredselection structured = (istructuredselection) service.getselection("org.eclipse.jdt.ui.packageexplorer"); if (structured == null){ homecoming null; } else { final object[] selectedprojects = structured.toarray(); arraylist<iproject> validatedprojects = new arraylist<iproject>(); (final object projectobj : selectedprojects){ if (projectobj instanceof iproject){ iproject project = (iproject) projectobj; //do } //rest of method; returning list of validated projects i tried how convert between object[] , interface (iproject[]) in java?
but there exception @ line:
system.arraycopy(objectarray, 0, projectarray, 0, objectarray.length);
user interface objects returned getselection() not straight instances of iproject, ifile or iresource.
to iproject ... utilize iadaptermanager:
iproject project = (iproject)platform.getadaptermanager().getadapter(projectobj, iproject.class); sometimes object not provide adapter straight iproject, seek more general iresource:
iresource resource = (iresource)platform.getadaptermanager().adapt(projectobj, iresource.class); if (resource instanceof iproject) { iproject project = (iproject)resource; ... code } java eclipse casting eclipse-plugin instanceof
No comments:
Post a Comment