我需要从Eclipse上的Java项目中获取所有方法,因此我想使用IType#getMethods()来执行此操作。但是,为此,在我的代码中,我需要使用IJavaProject#findType()实例化IType类。这样,我很难知道哪个参数传递给IJavaProject#findType()来指定我想要的get方法。我怎样才能做到这一点?代码如下。
public void getAllMethods(ExecutionEvent event) throws CoreException{
TreeSelection selection = (TreeSelection)HandlerUtil.getCurrentSelection(event);
IJavaElement je = (IJavaElement)selection.getFirstElement();
IJavaProject jproj = je.getJavaProject();
IProject p = (IProject)jproj.getResource();
IJavaProject javaProject = JavaCore.create(p);
IType itype = javaProject.findType(""); //which parameter to pass here?
IMethod[] allMethods = itype.getMethods();
for(int i=0; i<allMethods.length;i++)
System.out.println(allMethods[i].getElementName());
}
最佳答案
基本上,您可以传递类的完全限定名称。有关此和其他重载签名,请参见文档here