繁体   English   中英

java 这是什么? “即时”附加方法?

[英]What is this in java? Attaching methods “on the fly”?

我今天看到这样的事情:

    frame.addWindowListener(new WindowAdapter() {

        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

以下部分是什么意思?

new AClass(){ this part }

我可以“扩展”并创建此 class 内联的新实例吗?

google了一下,不知道叫什么= =

PS:学习java =p

它被称为“匿名类”......它是实现接口或扩展现有 class(通常是抽象的“适配器”或“帮助器”类)的简写方式,无需费心命名它。

您通常在 Swing 代码中看到它...实现 window 和鼠标侦听器。

这看起来(从表面上看)像是对该主题的体面讨论: http://www.javaworld.com/javaworld/javaqa/2000-03/02-qa-innerclass.html

干杯。 基思。

为了增加波西米亚的答案,这和做这样的事情是一样的

class MyWindowAdapter extends WindowAdapter() {

        @Overide 
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
}

frame.addWindowListener(new MyWindowAdapter());

它只是一个匿名的内部 class,当你只打算使用该接口实现一次时它很有用,它可能非常有用,否则你将不得不为此创建一个完整的 class。

它被称为匿名class。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM