我正在尝试学习不必要的复杂源代码。有一个方法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/

10-13 01:18