为什么'this'可以在Java中用作参数?

时间:2012-09-11 14:50:04

标签: java android

public class Activity01 extends Activity implements OnClickListener,
        ViewFactory {
        ...
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            LinearLayout main_view = new LinearLayout(this);
            m_Switcher = new ImageSwitcher(this);
            main_view.addView(m_Switcher);
            m_Switcher.setId(SWITCHER_ID);
            m_Switcher.setFactory(this);
            m_Switcher.setOnClickListener(this);
            setContentView(main_view);
            ...
        }

        public void onClick(View v) {
            ...
        }
    }

上面的代码来自Android项目,而下面的函数的参数设置为'this',为什么?

m_Switcher.setOnClickListener(this);

根据javadoc,这里应该如下:

public void setOnClickListener (View.OnClickListener l)

这意味着论证应该是这样的:View.OnClickListener

为什么'这个'可以存在?谢谢!

注意:根据答案,我在上面提供了更完整的代码。

1 个答案:

答案 0 :(得分:7)

在课堂宣言中,您会找到extendsimplements OnClickListener。这意味着该类可以用作OnClickListener(因为它是一个,除其他外)。这就是为什么你可以在这里使用这个