我希望在触发被调用类中的方法时访问调用类的方法。以下是我想做的例子。制作类C实例的类是随机调用的。因此,当listerners方法被触发时,呼叫类'接口方法应该能够听到tigger.Thats我想做什么
Interface myinterface
{
public void interfacemethod();
}
class A implements myinterface
{
C instance = new C ();
public void interfacemethod()
}
class B implements myinterface
{
C instance = new C ();
public void interfacemethod()
}
Class C extends someListerner
{
public void listenercalled()
{
//here i want to call the callers interfacemethod()
}
}
答案 0 :(得分:0)
您需要将指针传递给调用者对象。
如果您试图调用C&#39的创建者的Myinterface对象,请在C构造函数中传递Myinterface指针。
C instance = new C(this);
将该指针存储在C类中并将其用于回调。 Java函数是"虚拟"默认情况下。这意味着,无论是否进行强制转换,都会调用最低的子类函数(我认为这就是你想要的)。
Interface Myinterface{
public void interfacemethod();
}
class A implements Myinterface
{
C instance = new C ((Myinterface)this);
public void interfacemethod()
}
class B implements Myinterface
{
C instance = new C ((Myinterface)this);
public void interfacemethod()
}
Class C extends someListerner
{
Myinterface ml;
public C(Myinterface arg_ml){
ml = arg_ml;
}
public void listenercalled()
{
ml.interfacemethod();
//here i want to call the callers interfacemethod()
}
}