Java 这里返回的是匿名对象吗?
我正在学习相机教程中的Android代码。我来自一个C#/Obj-C/Swift语言集,所以Java对我来说仍然是新的。我熟悉函数式编程,但我看到的这种语法在本质上似乎不起作用(也许我错了) 代码如下:Java 这里返回的是匿名对象吗?,java,android,interface,callback,overriding,Java,Android,Interface,Callback,Overriding,我正在学习相机教程中的Android代码。我来自一个C#/Obj-C/Swift语言集,所以Java对我来说仍然是新的。我熟悉函数式编程,但我看到的这种语法在本质上似乎不起作用(也许我错了) 代码如下: button.setOnClickListener ( new View.OnClickListener() { @Override
button.setOnClickListener
(
new View.OnClickListener()
{
@Override
public void onClick(View v)
{
}
}
);
行newview.OnClickListener()
就是我一直坚持的内容。OnClickListener是一个接口。所以我的问题是:是新视图吗?OnClickListener()创建一个具有OnClickListener接口的匿名对象,并覆盖onClickView吗?
另外,如果您能告诉我这个“类型”代码的Java名称,我也会非常感激。是的,它创建了一个实现了该方法的匿名类。检查一下:正如您所猜测的,对
新视图.OnClickListener(){…}
的调用实例化了一个匿名类型的对象,该对象实现了视图.OnClickListener
。该类的名称将由周围类的名称决定,并将采用环绕类$index
的形式。因此,如果这是MyClass
中的第一个匿名内部类,它将被称为MyClass$1