ナンセンス不定記 このページをアンテナに追加 RSSフィード Twitter

2009-07-02

[]今まで知らなかったJava言語仕様(クラス名.this)

今まで知らんかった「クラス名.this.メソッド名」とか「クラス名.this.フィールド名」。

使い方は、ネストした(インナー)クラスの中から親(という表現が正しくない場合は、アウター)のインスタンスメソッドやフィールドにアクセスするとき。

・・・

例1:

http://d.hatena.ne.jp/javacodes/20090702/1246507019

AbstractList.Itr#remove()の中からAbstractList#remove()を呼び出す。

AbstractList.this.remove(lastRet);

例2:

http://d.hatena.ne.jp/javacodes/20090702/1246507800

AbstractList.ListItr#set()やadd()の中からAbstractList#set()やadd()を呼び出す。

AbstractList.this.set(lastRet, e);
AbstractList.this.add(cursor++, e);

・・・

なるほどね。

最初からダブらない名前をつければいいじゃんと思ったが、I/Fメソッド名を揃えているときはタブる罠。

でも、フィールド名はダブらないようにするだろう、たぶん。

トラックバック - http://d.hatena.ne.jp/hiuchida/20090702/1246540468