使用下面的代码,我试图获取给定包名称的IPackageFragment元素。但是返回的IPackageFragment的toString()是com.abc.def(未打开)。
因此,当我尝试访问此程序包中所有类的方法时,将得到JavaModelException。
注意:我可以在Eclipse中打开并查看此程序包中的Java文件。任何人都可以告诉这个软件包出了什么问题。
private IPackageFragment getPackage(String name)
throws Exception
{
IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
for (int ii = 0; ii < roots.length; ii++){
IPackageFragment fragment = roots[ii].getPackageFragment(name);
if(fragment != null && fragment.exists()){
return fragment;
}
}
return null;
}
最佳答案
必须先打开包片段元素,然后才能对其进行导航或操作。您需要在包片段上调用open(),然后才能访问包片段中的元素。