2014-10-28 177 views
2

我使用MethodDeclaration來讀取源代碼的Java解析器,但我有一些問題。我看不到任何給我這門課的方法。是否存在此方法,還是需要查看java分析器以嘗試創建一種將每個MethodDeclaration附加到它的ClassOrInterfaceDeclaration的方法。Java MethodDeclaration ClassOrInterfaceDeclaration查找類名

我要麼需要一種方法來檢測MethodDeclaration是否屬於一個類,或者我需要一種獲取ClassOrInterfaceDeclaration中所有方法的方法。

編輯以使其更清晰:

MethodDeclaration m = oldMethodDeclaration ; //where oldMethodDeclaration is already defined method declaration 

我需要一種方法來找到類「M」所屬。在下面的例子將返回「類名」

public class ClassName{ 
public void oldMethodDeclaration(){ 
} 

} 

或者,如果我有

ClassOrInterfaceDeclaration ClassName; 

有可能是我找到連接到它的方法名的列表?

+0

你的問題不是很清楚。請提供一個SSCCE http://sscce.org/ – Chiseled 2014-10-28 14:07:14

+0

添加更多信息 – Steven 2014-10-28 15:40:02

回答

1

看來你正在使用JavaParser。

因此,要獲得封閉類的MethodDeclaration:

TypeDeclaration t = (TypeDeclaration) m.getParentNode(); 

參觀ClassOrInterfaceDeclaration的方法:

c.accept(new VoidVisitorAdapter<Void>() { 
    @Override 
    public void visit(MethodDeclaration n, Void arg) { 
     System.out.println("Method name: " + n.getName()); 
    } 
}, null); 

我剛打印的方法名。我假設這給你提供了必要的信息來寫一個訪問者用MethodDeclarations做其他事情。