这是由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]; }
    });

对不起初学者的问题。我尝试寻找有关它的教程,但找不到。

最佳答案

它创建一个Anonymous Inner Class

基本上,您正在创建AbstractListModel的新实例,但覆盖了一些内容。由于您只打算在一个地方使用它,因此没有必要使用其自己的名称创建一个完整的类声明,因此就没有了“匿名”部分。

附带说明一下,由于Java 8 Lambda Expressions与匿名内部类具有类似的功能,但是它们专门用于仅使用一种抽象/未实现的方法实例化类/接口。

10-06 02:32