В Java, в чем разница между ними:
Object o1 = ....
o1.getClass().getSimpleName();
o1.getClass().getName();
o1.getClass().getCanonicalName();
Я проверял Javadoc несколько раз, и все же это никогда не объясняет это хорошо. Я также провел тест, и это не отражало никакого реального смысла в том, как эти методы вызываются.