I know this is a bit of a duplicate question but I want to ask it in a very specific way in order to clarify a very important point. The primary question being: Is there any
Another subtle difference occurs in reflective use-cases. The class name you need to load a class with Class.forName
is a bit funky.
Class.forName("com.acme.OuterClass.Innerclass"); // not found
Class.forName("com.acme.OuterClass$Innerclass"); // correct
See also: Instantiate nested static class using Class.forName.