我使用Eclipse JDT获得工作区每个打开的项目的所有类的名字命名,但到现在为止,我不能这样做...的Eclipse JDT得到的类
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IProject[] iprojects = workspace.getRoot().getProjects();
for (IProject ip : iprojects)
{
if (ip.isOpen() == true)
{
IJavaProject javaProject = JavaCore.create(ip);
IPackageFragment[] packages;
try
{
packages = javaProject.getPackageFragments();
for (IPackageFragment mypackage : packages)
{
if (mypackage.getKind() == IPackageFragmentRoot.K_SOURCE)
{
System.out.println("Source Name " + mypackage.getElementName());
System.out.println("Number of Classes: " + mypackage.getClassFiles().length);
}
else if (mypackage.getKind() == IPackageFragmentRoot.K_BINARY)
{
System.out.println("Binary Name " + mypackage.getElementName());
System.out.println("Number of Classes: " + mypackage.getClassFiles().length);
}
}
} catch (JavaModelException e) {
e.printStackTrace();
}
}
有了这个,我只能获得课程数量:0为我的项目示例中的每个软件包!
出了什么问题?为什么我无法获得每个包的类,然后获得每个类的名称?
- 欢呼声中,泽·卡洛斯
你知道getClassFiles()和getCompilationUnits()返回不同的结果,不是吗? 为什么你不使用SearchEngine呢? – nitind
来自API: getClassFiles()返回此包裹片段中的所有类文件,但包裹片段可能只包含编译单元。 getCompilationUnits()返回此包裹片段中的所有编译单元,但包裹片段可能只包含类文件。 现在我很困惑,我该用什么? 关于SearchEngine,我对此一无所知,这是对我的问题更好的解决方案? – josecampos