这种写作方式?

sap*_*Pro 0 java

虽然我经常遇到,但我不明白这种编写代码的方式:

Runnable r=new Runnable() {//<----- (braces start here?)
  public void run() {
    System.out.println("Hello");
  }
};  // ?
Run Code Online (Sandbox Code Playgroud)

这是什么?请解释清楚.

Jon*_*eet 9

这是一个匿名的内部阶级.它Runnable使用大括号内的代码创建接口的实现.除了实现接口,您还可以扩展其他类.好的方面是您可以在不显式创建单独的类的情况下执行此操作,并且还可以final在匿名内部类的主体内引用局部变量(包括参数).

有关更多详细信息,请参阅Java教程,或者仅为相关页面的负载搜索"匿名内部类".