Ich schreibe ein Eclipse-Plugin, und ich habe versucht, eine Methode zu erstellen, die alle Klassen im Arbeitsbereich in einer ArrayList < \ Class < \? >> (Ich fügte die " \ "um die generischen klammern zu enthalten, da html es mir sonst nicht erlauben würde". HierAbrufen aller Klassen aus dem aktuellen Arbeitsbereich in Eclipse
ist der Code, den ich habe:
private ArrayList<Class<?>> getAllClasses() throws JavaModelException {
ArrayList<Class<?>> classList = new ArrayList<Class<?>>();
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
IProject[] projects = root.getProjects();
for (IProject project : projects) {
IJavaProject javaProject = JavaCore.create(project);
IPackageFragment[] packages = javaProject.getPackageFragments();
for (IPackageFragment myPackage : packages) {
IClassFile[] classes = myPackage.getClassFiles();
for (IClassFile myClass : classes) {
classList.add(myClass.getClass());
}
}
}
return classList;
}
Dies ist jedoch nicht zu funktionieren scheint. Ich hatte einige Printlines, und ich fand heraus, dass es auch irrelevante Klassen (dh Klassen aus Java \ jre6 \ lib \ rt.jar) enthält. Irgendwelche Vorschläge?
zu http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_int_model.htm vertretend Hier können Sie einen finden ziemlich gute Beschreibung des JDT-Modells. – GeT