这是由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]; }
});
抱歉初学者问题。我试着找一个关于它的教程,但找不到一个。
答案 0 :(得分:3)
它会创建一个Anonymous Inner Class。
基本上,您正在创建AbstractListModel
的新实例,但要覆盖一些事情。由于你只是在这一个地方使用它,所以用自己的名字创建一个完整的单独的类声明是没有意义的 - 因此是“匿名”部分。
另外,由于Java 8 Lambda Expressions提供与匿名内部类相似的功能,但它们专门用于仅使用一个抽象/未实现的方法实例化类/接口。
答案 1 :(得分:2)
这是匿名内部类的实现。
例如,您可以创建新的Runnable
:
new Runnable() {public void run() { }});
或ActionListener
new ActionListener(){public void actionPerformed(ActionEvent e}{}};
以同样的方式。