4

質問

コードセグメント"newTextColumn(){...}、" 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パッケージからのものであるかどうか疑問に思っている場合。

4

3 に答える 3

6

を拡張する匿名の内部クラスですTextColumn<MyObjectProxy>。その中に、を拡張する匿名内部クラスのインスタンスで初期化されるrenderertypeという名前のフィールドがあります。その下にメソッドのオーバーライドもあります。Renderer<Integer>AbstractRenderer<Integer>getValue

于 2013-02-28T20:13:36.177 に答える
2

匿名クラスを定義し、そのインスタンスを作成するだけです。このインスタンスは、パラメーターとしてメソッドに渡されますtable.addColumn

于 2013-02-28T20:13:47.177 に答える
0

はい、これは TextColumn オブジェクトに対応する匿名クラスです。

getValue() メソッドはオーバーライドされます。

于 2013-02-28T20:14:44.473 に答える