Android: 这个语法在做什么?

Android: What is this syntax doing?

new CountDownTimer(30000, 1000) {

   public void onTick(long millisUntilFinished) {
      mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
   }

   public void onFinish() {
      mTextField.setText("done!");
   }
}.start();

来源:developer.android.com

我知道它正在创建一个 class CountDownTimer 的新对象,用两个参数初始化并最终启动,因为它 returns 是同一个对象。但是在 {} 之间带有两个函数的代码是一种什么样的技巧呢?有没有关于它的语言参考?提前致谢。

CountDownTimer class 是抽象的:您不能直接实例化它(这是 OOP 的一个要点,所有 OO 语言也是如此)。

正如@Jon Skeet 在评论中所说,您的代码片段创建了一个匿名 class 实例。这意味着你直接实现了抽象 class 和抽象方法,而没有 "storing them" in a classic Java class.