2012-12-03 44 views
0

假設我有hello方法的Hello類。通過方法名稱從IType中查找IMethod

public class Hello { 
public int hello(int x, int y) 

我需要獲取「hello」方法的IMethod引用。 這是我可以得到IType(你好)的代碼。

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
// 1. The name of the project in the workspace 
IProject project = root.getProject("Hello"); 
project.open(null /* IProgressMonitor */); 

IJavaProject javaProject = JavaCore.create(project); 
// 2. The name of the Type (including the namespace) 
IType itype = javaProject.findType("smcho.HelloRenameMethod"); 

IMethod method = itype.findMethod() // ??? 

我googled IType#findMethod(),但the input parameter for this method is an IMethod instance, not a string

如何從IType中使用方法名稱獲取IMethod?或者,我如何使用IType#findMethod()來獲取IMethod?

回答

0

我需要使用getMethod來獲得方法名稱的方法。

IMethod method = itype.getMethod("hello", new String[] {"I", "I"}); 
+0

我也試過這個'itype.getMethod(string,string [])'方法,並且它返回目標方法。但是目標方法的狀態是'(not open)'。你有這個問題嗎?謝謝。 – andyf