找出类的构造函数中的实例化对象

And*_*eas 0 java opengl events event-handling event-bubbling

如何从java中的构造函数中获取实例化对象?

我想存储一些GUI类的父对象的引用,以模拟事件冒泡 - 调用父级处理程序 - 但我不想更改所有现有的代码.

Lau*_*ves 5

简短的回答:在Java中没有办法做到这一点.(你可以找出哪个班级叫你,但下面的长答案也适用于大部分.)

答案很长:根据调用的位置神奇地表现不同的代码几乎总是一个坏主意.对于任何必须维护代码的人来说,这是一件令人困惑的事情,它会严重损害你的重构能力.例如,假设您意识到实例化对象的两个地方基本上具有相同的逻辑,因此您决定将公共位分解出来.惊喜!现在代码的行为有所不同,因为它是从其他地方实例化的.只需添加参数并修复呼叫者即可.从长远来看,它可以节省您的时间.