使用括号代码解释 Java 表示法'new'



我看到这个符号,一个新的运算符,带有类名,然后是括号代码,偶尔在Android示例中。 有人可以解释一下吗? 在下面的示例中,PanChangeListener 是一个类(或者可能是一个接口),"new"创建了一个实例,但是括号中的代码相对于 PanChangeListener 扮演什么角色?

fType pcListener = new PanChangeListener() {
      @Override
      public void onPan(GeoPoint old, GeoPoint current) {
                         //TODO
      }
});

即使是这种语法的名称也会很有用,因为我可以谷歌它。

这是一个

匿名类。

该语法允许您创建一个新类,为某些方法提供实现,然后实例化它。

当一个本地类只使用一次时,请考虑使用匿名类语法,该语法将类的定义和使用放在完全相同的位置。

它的工作方式与以下不使用匿名类的代码类似:

class MyPanChangeListener implements PanChangeListener()
{
    @Override
    public void onPan(GeoPoint old, GeoPoint current) {
        //TODO
    }
}
// ...
fType pcListener = new MyPanChangeListener();

您在这里看到一个匿名类的创建。它正在创建 (a) 名为 PanChangeListener 的接口的实现或 (b) 该名称的抽象类的子类。

相关内容

  • 没有找到相关文章

最新更新