编程语言
首页 > 编程语言> > Java初始化块

Java初始化块

作者:互联网

有人能帮助我理解以下构造吗?我无法理解这是初始化程序还是匿名类.我不熟悉这种语法.

   JTable jt = new JTable(data, fields) **{
            public TableCellRenderer getCellRenderer(int row, int column) {
                // TODO Auto-generated method stub
                return renderer;
            }
        };**

解决方法:

它创建了一个匿名内部类,它扩展了JTable,并覆盖了getCellRenderer方法.

很长的解释:

您正在创建一个扩展JTable的类,而不显式为其指定名称而不是使用标准类声明:

public class ExtendedJTable extends JTable{}

此类的可见性仅限于定义和实例化的类.
它非常有用,例如,当您需要时,例如在您发布的代码中,覆盖特定类(JTable)的方法(getCellRenderer()),仅限于当前类上下文.

这种方法有一些好处,也有一些局限性.有关深入讨论,请查看此article.

标签:initializer,java,swing,jtable,anonymous-class
来源: https://codeday.me/bug/20190726/1541846.html