Why can I access the private members of an enclosing class reference
===

I have seen many questions about accessing private members of an enclosing class. However, my question is the opposite. 

If I have (as an example), the following code:

    public class A {
    
       private String outerString = "silly string";
    
       static class B {
          private final A someA = new A();      
    
          public void foo() {
             String b = someA.outerString ;
          }
       }
    }

I'm wondering why this compiles? I would have expected an error by virtue of the way in which I am accessing the 'outerString' instance variable from class A (via someA.outerString). I know that an inner class can access the enclosing class members directly by an implicit 'this' reference. But here, class B is static, so the 'this' reference won't apply. 