I think you had forgotten correct syntax i.e new Demo.Nested().b;
posted 7 years ago
yeah that's right but the point is
if a static member variable can be accessed with object of enclosing class(objectOfEnclosingClass.staticVariable),
why can't static member class be accessed with object of enclosing class(objectOfEnclosingClass.staticNestedClass)?
You shouldn't compare static class with static variables because it is really not.Static class is a Top level class, and Why can't you do that? because API doesn't allow that.We have to follow API.It won't work according to your desire.
The commented line of code doesn't compile.
I thought it should have because static members can be accessed through objects too.
I guess it can be argued that if the first is allowed, then the second should be allowed too -- considering other cases where it is similarly allowed.
The answer to this is likely defined somewhere in the JLS, but quite frankly, I was never a fan of using an instance to get to any static component, so never looked it up.... hence, I am leaving it as an exercise to the OP...