Interface Readerを提供することで機能を定義する抽象ラッピングクラスFooがあります。別のリーダーを実装して提供すると、すべてうまくいきます。内部クラスを介してこれを行おうとすると、うまくいきません。Reader の実装を内部クラスに持つことは、私にとって必須です。
public abstract class Foo
{
private Reader reader;
public Foo(Reader reader)
{
this.reader = reader;
}
public void read()
{
this.reader.doit();
}
}
「何らかの中間コンストラクター呼び出しのため、タイプ MapLink の囲んでいるインスタンスは使用できません」
public class ReaderFoo extends Foo
{
public class FooReader implements Reader
{
@Override
public void doit()
{
// functionality
}
}
public ReaderFoo ()
{
super(new FooReader());
}
}
私は何を間違っていますか?