所以,就像问题所描述的那样。这是在 Android 应用程序的背景下,我想知道这是可靠的做法还是令人厌恶的黑客行为?
基本上,类 foo 使用“this”作为参数构造类 baz,然后 baz 放入一个成员变量。当 baz 完成其任务时,它会调用 foo 中的公共(public)函数来返回控制权并通知 foo baz 已完成。
这会让这里的任何人感到不舒服吗?或者这是公认的做法?如果没有,有什么更好的做事方法?
谢谢!
最佳答案
完全正常。
事实上,如果 baz 是一个非静态类,在 foo 内部声明,那么它隐式地具有指向 foo 的指针(在 baz 中称为“foo.this”)。
例如:
findViewById(R.id.button).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) { handleClick(); }
}
);
对“handleClick()”的调用隐含地调用了 foo.this.handleClick() ,并且正是您正在讨论的调用类型。
这并不是说您没有使用该构造做可怕的事情;-)。不过,根据你的描述,这是绝对正常的。
关于java - 将调用类传递给子类,并在子类完成工作时调用其中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306816/