Mam następujący kodNie można rzucać projektu Eclipse do IJavaProject
IJavaProject targetProject = null;
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
for (IProject project : root.getProjects()) {
if (project.getName().equals(projName)) {
try {
if (project.hasNature("org.eclipse.jdt.core.javanature")) {
targetProject = (IJavaProject) project;
}
} catch(...) {
// etc ...
}
Co staram się zrobić to w zasadzie powrót projekt, który pasuje do konkretnej nazwy jako IJavaProject. Jak widać, to sprawdzić, czy dany projekt ma charakter java poprzez wywołanie:
if (project.hasNature("org.eclipse.jdt.core.javanature")) {
Niestety, dostaję „ClassCaseException” wskazując
java.lang.ClassCastException:
org.eclipse.core.internal.resources.Project cannot be cast to org.eclipse.jdt.core.IJavaProject
Jakiś pomysł dlaczego? Pomyślałbym, że kiedy projekt IProject ma naturę java, może być rzutowany na projekt IJavaProject. Nie mogę uzyskać dostępu do interfejsu JDT Core API w chwili, gdy usługa jest niedostępna here.
Tak, to był typ;) – Joeblackdev