给出我的 android 项目的以下类:
Preview extends SurfaceView implements SurfaceHolder.Callback
和
A extends Doc
我真的不知道如何问,我知道这不太好,但我想从预览中得到它,我调用 Doc 的抽象方法。在这个Doc的方法中,我必须调用前一个Preview对象的方法。
这是一个示例:
来自 Preview.java :
Doc _doc = new A();
private void myMethod() {
this._doc.process(this)
}
来自A.java:
@Override
public void process(Preview p) {
p.processA();
}
问题是我遇到了错误:
The method process(Preview) in the type Doc is not applicable for the arguments (new Camera.PreviewCallback(){})
但是,我无法改变这一判断,因为我想从预览中调用该方法。我尝试了很多东西,例如 Actor 等,但都不起作用。
感谢您的帮助!
PS:我在 Windows 下使用 Eclipse。
最佳答案
假设您从匿名内部类(我认为是 Camera.PreviewCallback 类型,因此出现错误消息)调用 A.process(this)
,则必须编写 A.process (Preview.this)
,因为独立的 this
引用内部类而不是 Preview 实例。
关于java - 将 "this"从 Java 接口(interface)传递到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27502769/