提供我的android Project的以下类:



Preview extends SurfaceView implements SurfaceHolder.Callback




A extends Doc


我真的不知道怎么问,我知道这不是很好,但是我想从Preview中调用Doc的抽象方法。在此Doc的方法中,我必须调用上一个“预览对象”的方法。

这是一个例子:

从Preview.java中:

   Doc _doc = new A();
   private void myMethod() {
       this._doc.process(this)
   }


从A.java:

@Override
public void process(Preview p) {
    p.processA();
}


问题是我遇到了一个错误:


  Doc类型的方法process(Preview)不适用于参数(new Camera.PreviewCallback(){})


但是,由于我想从Preview调用方法,因此无法更改此判断。我尝试了很多事情,例如演员表等。它们都不起作用。

谢谢你的帮助 !

PS:我在Windows下的Eclipse上。

最佳答案

假设您正在从匿名内部类(我认为是Camera.PreviewCallback类型,因此是错误消息)中调用A.process(this),则必须编写A.process(Preview.this),因为独立的this是指内部类而不是内部类。预览实例。

关于java - 将“this”从Java接口(interface)传递给另一个类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27502769/

10-11 03:15