java - 将调用类传递给子类,并在子类完成工作时调用其中的方法

标签 java android

所以,就像问题所描述的那样。这是在 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/

相关文章:

java - 带有显示标签的 struts 1.3 磁贴

java - 部署在 tomcat 上时,Angular Service Worker 离线支持不起作用

java - IcedTea - 如何显示小程序控制台..?

c# - 从 AlertBox 实用地启用 GPS

android - 以编程方式关闭系统对话框

java - 解析模板 [] 时出错,模板可能不存在,或者任何已配置的模板解析器都无法访问该模板

java - 使用 Jackson 从所有 JSON 数组中删除重复的文本值

Android.bp 和忍者 : error: unknown target

android - RAD跨平台开发建议

android - 在 android 的控制台上显示 native 推送通知,但在设备或模拟器上不显示通知