我使用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