Java Class Names Explained: getSimpleName() vs getName() vs getCanonicalName() | CodeTrail