title: Inner class object as Outer class constructor argument
body: <p>I have an abstract wrapping class Foo which get functionality defined by providing it with the Interface Reader. All works well when I'm implementing a seperate Reader and provide it.
  It goes wrong when I'm, trying to do this via a inner class. Having the Reader implementation in an inner class is a requirement for me.</p>
  
  <pre><code>public abstract class Foo
      {
          private Reader reader;
  
          public Foo(Reader reader)
          {
              this.reader = reader;
          }
  
          public void read()
          {
              this.reader.doit();
          }
      }
  </code></pre>
  
  <p>"No enclosing instance of type MapLink is available due to some intermediate constructor invocation"</p>
  
  <pre><code>public class ReaderFoo extends Foo
  {
      public class FooReader implements Reader
      {
          @Override
          public void doit()
          {
              // functionality
          }
      }   
  
      public ReaderFoo ()
      {
          super(new FooReader());
      }
  }
  </code></pre>
  
  <p>What am I doing wrong?</p>