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/