The reason why inner classes cannot have static members is because static members are usually instantiated when the program starts. However, an inner class depends on having an instance of its enclosing class in order to create it and then access it’s members.
Read moreWhat is static inner class in Java?
A static inner class is a nested class which is a static member of the outer class . It can be accessed without instantiating the outer class, using other static members. Just like static members, a static nested class does not have access to the instance variables and methods of the outer class.
Read more