java语法,如Object(){}

ses*_*ses 2 java reflection class

Class clazz = new Object(){}.getClass();
Run Code Online (Sandbox Code Playgroud)

为什么这可能,这意味着什么?有人可以提醒我吗?

例如:

public class Testing {
    public static void main(String[] args) {
        Class clazz = new Object(){}.getClass();
        System.out.println(clazz);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果是: class Testing$1

Pét*_*rök 9

new Object(){}创建一个匿名内部类,作为的子类Object.它是一个内部类Testing,因此它获得了一个编译器生成的名称,就像你看到的那样.