获取java项目中的包列表

时间:2012-12-11 04:09:35

标签: java eclipse namespaces package

我使用下面的代码来获取给定java项目中的包列表。但它也包括列表中的文件夹。请建议一种忽略文件夹的方法。

final IPackageFragmentRoot[] packageFragmentRootArray = workingJavaProject.getJavaProject().getAllPackageFragmentRoots();

for (final IPackageFragmentRoot packageFragmentRoot : pkgFrgmRoots) {
        if (!packageFragmentRoot.isArchive()) {
            for (final IJavaElement pkg : packageFragmentRoot.getChildren()) {
                if (pkg != null && !isEmpty(pkg.getElementName()) && pkg instanceof IPackageFragment) {
                    allPackages.add((IPackageFragment) pkg);
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:3)

IPackageFragment可以是IFiles,IFolders或IStorages的实例。一种可能的解决方案:

if (pkg != null && !isEmpty(pkg.getElementName()) && pkg instanceof IPackageFragment) {
    if (!(pkg instanceof IFolder)) {
        allPackages.add((IPackageFragment) pkg);
    }
}