title: Why is an anonymous inner class containing nothing generated from this code?
body: <pre><code>package com.test;
  
  public class OuterClass {
      public class InnerClass {
          public class InnerInnerClass {
  
          }
      }
  
      public class InnerClass2 {
  
      }
  
      //this class should not exist in OuterClass after dummifying
      private class PrivateInnerClass {
          private String getString() {
              return "hello PrivateInnerClass";
          }
      }
  
      public String getStringFromPrivateInner() {
          return new PrivateInnerClass().getString();
      }
  }
  </code></pre>
  
  <p>When run through <code>javac</code> on the command line with <code>Sun JVM 1.6.0_20</code>, this code produces 6 .class files:</p>
  
  <blockquote>
    <p>OuterClass.class<br>
    OuterClass$1.class<br>
    OuterClass$InnerClass.class<br>
    OuterClass$InnerClass2.class<br>
    OuterClass$InnerClass$InnerInnerClass.class<br>
    OuterClass$PrivateInnerClass.class</p>
  </blockquote>
  
  <p>When run through JDT in eclipse, it produces only 5 classes.</p>
  
  <blockquote>
    <p>OuterClass.class<br>
    <del>OuterClass$1.class</del><br>
    OuterClass$InnerClass.class<br>
    OuterClass$InnerClass2.class<br>
    OuterClass$InnerClass$InnerInnerClass.class<br>
    OuterClass$PrivateInnerClass.class</p>
  </blockquote>
  
  <p>When decompiled, <code>OuterClass$1.class</code> contains nothing.  Where is this extra class coming from and why is it created?  </p>