当代码段“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包。
答案 0 :(得分:6)
这是一个扩展TextColumn<MyObjectProxy>
的匿名内部类。在其中,它有一个名为renderer
的{{1}}类型的字段,该字段使用扩展Renderer<Integer>
的匿名内部类的实例进行初始化。在此之下还有方法AbstractRenderer<Integer>
的覆盖。
答案 1 :(得分:2)
它只是定义一个匿名类并创建它的一个实例。此实例作为参数传递给方法table.addColumn
。
答案 2 :(得分:0)
是的,它是一个匿名类,对应于TextColumn对象。
重写getValue()方法。