public static void main(String[] args) {
    Thread myThread = new Thread("YOYO") {
        public void run() {
            Thread t = Thread.currentThread();
            System.out.println(t.getName());
        }
    };

    myThread.start();
}


谁能解释线程类contructor new Thread("YOYO")的调用旁边的花括号代码块的功能是什么?据我所知,它不应该是匿名类,因为如果是匿名类,则Thread旁边的括号应该为空()而不是("YOYO")

最佳答案

根据Java docs


  匿名类表达式包含以下内容:
  
  
  新的运营商
  要实现的接口名称或要扩展的类的名称。在此示例中,匿名类正在实现接口HelloWorld。
  括号中包含构造函数的参数,就像普通的类实例创建表达式一样。注意:实施时
  接口,没有构造函数,因此您使用一个空对
  括号,如本例所示。
  一个主体,它是一个类声明主体。更具体地说,在主体中,允许使用方法声明,但不允许使用语句。
  


Thread是一个类,并且包含一个constructor with a String parameter,因此,这是一个有效的匿名类表达式。

关于java - 匿名类的构造函数调用可以有参数吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34924974/

10-10 01:11