2012年12月5日水曜日

メソッドチェーンと思ったら

 今日、とあるソースを追っかけていたら、こんなソースがあった


this->getFoo()
     ->getBar()
     ->execute();

 が、getFoo() と execute() は同じクラスに見つかるのに、なぜか getBar() が出てこない。全ファイルで grep をかけると別なクラスに getBar() は見つかるのだが、なぜ???

 よくよく調べてみると、getFoo() の戻り値が、getBar() のあるクラスのオブジェクトだった orz。

 まいった。