The method getInnerClasses() seems to actually be listing all nested classes, including static nested classes, not just inner classes. This is a common misuse of the term "inner class". For definitions see
and search for "nested" and "inner", specifically
"An inner class is a nested class that is not explicitly or implicitly declared static."
You might consider renaming the method to JavaClass.getNestedClasses() for this reason, unless you are really returning only inner classes.