将子类传递给子类并在子类完成作业时从中调用方法

时间:2014-06-19 12:37:14

标签: java android

所以,就像问题所描述的那样。这是在一个Android应用程序的上下文中,我想知道它是坚实的做法还是令人厌恶的黑客攻击?

基本上,类foo使用'this'作为参数构造类baz,然后baz将其放入成员变量中。当baz完成它的任务时,它调用foo中的一个公共函数来返回控制并通知foo baz已经完成。

这会让这里的任何人感到恶心吗?还是接受了练习?如果没有,有什么更好的做事方式?

谢谢!

1 个答案:

答案 0 :(得分:1)

完全正常。

实际上,如果baz是一个非静态类,在foo中声明,那么它有一个指向foo的指针,隐含地(它被称为" foo.this",在baz中)。

例如:

findViewById(R.id.button).setOnClickListener(
        new View.OnClickListener() {
            @Override
            public void onClick(View v) { handleClick(); }
        }
    );

调用" handleClick()"在那里,隐含地调用了foo.this.handleClick()以及你正在讨论的那种电话。

这并不是说你没有用构造做可怕的事情;-)。但就你所描述的而言,这绝对是正常的。