有人可以向我解释这个Java语法吗?

e2e*_*2e8 0 java anonymous-class

有人可以向我解释这个Java语法吗?这些括号在外括号内做了什么?

addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });
Run Code Online (Sandbox Code Playgroud)

Aas*_*set 6

它被称为匿名内部类.它创建了一个扩展的未命名类WindowAdapter(它也可以指定一个接口,在这种情况下该类将实现该接口),并创建该类的一个实例.在括号内,您必须实现所有抽象方法或所有接口方法,并且您也可以覆盖方法.

  • @ e2e8在这种情况下,效果是,不是在外部类或单独的命名类上实现`windowClosing`,而是使用匿名内部类.这样你的类就不必实现`WindowListener`接口或扩展`WindowAdapter`抽象适配器类,也不必创建一个全新的类来接收windowClosing事件. (2认同)