繁体   English   中英

这些花括号做什么?

[英]What do these curly brackets do?

这是由netbeans生成的一段代码,我对这些括号在调用AbstractListModel之后的行为感到困惑。

    li_reminderslist.setModel(new javax.swing.AbstractListModel() {
        String[] strings = { };
        public int getSize() { return strings.length; }
        public Object getElementAt(int i) { return strings[i]; }
    });

对不起初学者的问题。 我试过寻找一个教程,但找不到一个。

它创建了一个匿名内部类

基本上,您正在创建一个新的AbstractListModel实例,但重写了一些事情。 由于你只是在这一个地方使用它,所以用自己的名字创建一个完整的单独的类声明是没有意义的 - 因此是“匿名”部分。

另外,由于Java 8 Lambda表达式提供与匿名内部类相似的功能,但它们专门用于仅使用一个抽象/未实现的方法实例化类/接口。

这是匿名内部类的实现。

例如,您可以创建新的Runnable

new Runnable() {public void run() { }});

ActionListener

new ActionListener(){public void actionPerformed(ActionEvent e}{}};

以相同的方式。

暂无
暂无

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

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