Java,获取调用实例



以下示例

public class C{
A myA;
public C(){
myA = new A();
}
}
public class A{
C myOrigin;
public A(){
// How to set myOrigin to the instance 
// which invoke this.
}
}

是否有办法获得类C的实例,它创建了A的实例(在这个实例中)。换句话说:A的实例知道它初始化的对象吗?

我知道,我可以使用这个作为参数,
public class C{
A myA;
public C(){
myA = new A(this);
}
}

public class A{
C myOrigin;
public A(Object pObject){
myOrigin = pObject;
}
}

但我正在寻找一种没有任何参数的方法。

我非常怀疑这是可能的,但我很想听听其他的情况。我怀疑它的原因是因为它不是一个调用方法的实例,而是另一个方法。通过堆栈跟踪可以很容易地找到调用方法(例如throw &捕获异常并检查其堆栈跟踪以查找调用者)。然而,实例只是方法的一个隐藏参数,我们无法知道调用方法的参数是什么。(至少,据我所知没有。)

因此,我认为将this传递给其他方法是唯一的方法。

相关内容

  • 没有找到相关文章

最新更新