我正在尝试学习不必要的复杂源代码。有一个方法public void passObject(SomeObject someObject)
,我想知道实例化到哪个类someObject
。问题是,当我们遍历调用层次结构时,分支因子很大。例如,三个方法可以通过someObject
传递passObject
,而在这三个方法可以分别传递相同对象之前的三个方法。
是否有一些方法可以插入passObject
中,例如:
public void passObject(SomeObject someObject) {
whereDidThisComeFrom(someObject); // Should print the class (perhaps) where someObject was instantiated.
//
//do the other stuff that passObject is supposed to do.
}
我使用
Eclipse
。 最佳答案
最简单/最肮脏的方法是将(new Exception("test")).printStackTrace()
放入SomeObject
的构造函数中并运行代码。每次实例化SomeObject
时,您都会将堆栈跟踪打印到控制台。
Eclipse还支持构造函数中的断点,因此您可以设置断点并进行调试。
关于java - 查找实例化对象的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22554332/