title: Why interface can only be declared in top-level class?
body: <p>Alright, I know it's the rule:</p>
  
  <blockquote>
    <p>According to JLS: 8.1.3 Inner Classes and Enclosing Instances, inner
    classes may not declare static initializers or member interfaces.
    Inner classes may not declare static members, unless they are
    compile-time constant fields.</p>
    
    <p>According to 8.5.2 Static Member Type Declarations, "Member interfaces
    are always implicitly static. It is permitted but not required for the
    declaration of a member interface to explicitly list the static
    modifier". They are always top-level, not inner.</p>
  </blockquote>
  
  <p>I just wonder why. What may happen if we are allowed to declare interface within an inner class? Won't inner class become top-level class if I put it into another Class file?</p>