参数调用内的花括号。 >>这是什么意思? |春季3和GWT

时间:2013-02-28 20:10:31

标签: java spring gwt

问题

当代码段“new TextColumn(){...},”MyObjectId“);”然后执行对花括号中最外面的代码代表什么?它是否代表TextColumn对象的匿名内部类实例?它是否代表TextColumn对象的定义?

table.addColumn(new TextColumn<MyObjectProxy>() {
    Renderer<Integer> renderer = new AbstractRenderer<Integer>() {
        public String render(Integer obj) {
            return obj == null ? "" : String.valueOf(obj);
        }
    };
    @Override
    public String getValue(MyObjectProxy object) {
        return renderer.render(object.getMyObjectId());
    }
}, "MyObjectId");

如果您想知道TextColumn来自com.google.gwt.user.cellview.client.TextColumn包。

3 个答案:

答案 0 :(得分:6)

这是一个扩展TextColumn<MyObjectProxy>的匿名内部类。在其中,它有一个名为renderer的{​​{1}}类型的字段,该字段使用扩展Renderer<Integer>的匿名内部类的实例进行初始化。在此之下还有方法AbstractRenderer<Integer>的覆盖。

答案 1 :(得分:2)

它只是定义一个匿名类并创建它的一个实例。此实例作为参数传递给方法table.addColumn

答案 2 :(得分:0)

是的,它是一个匿名类,对应于TextColumn对象。

重写getValue()方法。