0
來自現有的代碼庫。類A具有實例變量A.toBeCalled,類型爲「ToBeCalled」。 如何找到它的所有用法/參考A.toBeCalled從代碼庫的整個調用圖? 例如如何在調用圖中找到實例變量對象的所有用法?
- B類調用A.getToBeCalled()並存儲在其本地var中,然後通過調用它的方法來使用它。
- B類調用A.getToBeCalled()並存儲在C類的實例var中,然後D類使用C類的實例var。
要求:
- 什麼方法調用A.toBeCalled對象已在B類,C類,d類做...等
- 被叫圖表以上
代碼示例
Class A {
ToBeCalled toBeCalled = new ToBeCalled();
getToBecalled() { return toBeCalled;}
}
Class B {
main() {
A a = new A();
ToBeCalled toBeCalledInB = a.getToBecalled();
toBeCalledInB.doXXX();
C c = new C();
c.setToBeCalled(toBeCalledInB);
D d = new D();
d.start(c);
}
}
Class C {
ToBeCalled toBeCalledInC;
setToBeCalled(ToBeCalled theToBeCalled){
toBeCalledInC = theToBeCalled;
}
getToBeCalled() {
return toBeCalledInC;
}
}
Class D {
start(C c) {
ToBeCalled toBeCalledInD = c.getToBeCalled();
toBeCalledInD.doYYY();
}
}
調用的列表方法A.toBeCalled
- ToBeCalled.doXXX()
- ToBeCalled.doYYY()
我已經調查了幾個工具爲起點,然而,他們是那種粗糙
- https://code.google.com/p/javaparser/wiki/UsingThisParser
- IntelliJ's Code Explorer插件
- http://www.antlr.org/wiki/display/ANTLR4/ANTLR+4+Documentation個
- http://spoon.gforge.inria.fr/Doc/FAQ
非常感謝幫助。
也許我是小白程序員,但我不明白你的問題在所有。例如同樣的事情。 –
感謝您指出,也許我的表情需要調整。我的意思是如何在類的所有調用方中列出實例var的所有用法。 –
這裏有什麼問題? – EJP