The Java Tutorial says that since an inner class is associated with an instance of the enclosing class, it (the inner class) cannot define any static members itself.
It’s interesting for me why can’t inner classes declare static members for instance, some private static field, which the instance of this inner class could possibly share with the other instances of the same inner class? is this just an implementation of things in Java that has to be taken for granted or something else?
Basically just an arbitrary decision. there’s no reason it couldn’t be supported, but there is also not really any good reason to support it. just declare the static field in the outer class.
also, that quote may not be entirely correct: i believe you can declare a static serialVersionUID in an inner class.
Update, sounds like this is now possible as of Java 16.