我需要从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

09-25 20:39