Java厨というか、無知なだけです・・・
クラス内クラス宣言が利用に先立ってされなければならない(らしい)という所にひっかかってました

class A
{
 B getB();
 class B;
}; // コンパイルエラー「Bの重複定義」

というやつ・・・

class A
{
 int hoo() { return bar(); }
 int bar() { return 1; }
}

はOKなのに・・・