我有一段有效的代码,我想问一下究竟发生了什么?

mic*_*ter 2 java android

代码末尾的分号(;)是让我迷失的东西.

private View.OnClickListener onSave = new View.OnClickListener() {

    public void onClick(View v) {

        EditText name=(EditText)findViewById(R.id.name);
        EditText address=(EditText)findViewById(R.id.addr);
        r.setName(name.getText().toString());
        r.setAddress(address.getText().toString());

    }
};
Run Code Online (Sandbox Code Playgroud)

Tud*_*dor 8

我们这里有一个匿名的内部类.实际上发生的事情是你说"我想在这个时候使用一个对象延伸View.OnClickListener".然后通过指定onClick方法代码直接内联提供该对象类型的实现.

您发布的整个代码只是一个赋值,转换为:

A a = new SubclassOfA();
Run Code Online (Sandbox Code Playgroud)

where SubclassOfA直接定义内联.