getName () - повертає ім'я сутності (клас, інтерфейс, клас масиву, примітивний тип або void), представлене цим об'єктом Class, як String.
getCanonicalName () - повертає канонічну назву базового класу, як визначено специфікацією мови Java.
getSimpleName () - повертає просте ім'я базового класу, тобто ім'я, яке воно було вказане у вихідному коді.
package com.practice;
public class ClassName {
public static void main(String[] args) {
ClassName c = new ClassName();
Class cls = c.getClass();
// returns the canonical name of the underlying class if it exists
System.out.println("Class = " + cls.getCanonicalName()); //Class = com.practice.ClassName
System.out.println("Class = " + cls.getName()); //Class = com.practice.ClassName
System.out.println("Class = " + cls.getSimpleName()); //Class = ClassName
System.out.println("Class = " + Map.Entry.class.getName()); // -> Class = java.util.Map$Entry
System.out.println("Class = " + Map.Entry.class.getCanonicalName()); // -> Class = java.util.Map.Entry
System.out.println("Class = " + Map.Entry.class.getSimpleName()); // -> Class = Entry
}
}
Одна відмінність полягає в тому, що якщо ви використовуєте анонімний клас, ви можете отримати нульове значення при спробі отримати ім'я класу за допомогоюgetCanonicalName()
Інший факт полягає в тому, що getName()метод поводиться інакше, ніж getCanonicalName()метод для внутрішніх класів . getName()використовує долар як роздільник між канонічним ім'ям класу, що додається, та простим іменем внутрішнього класу.
Щоб дізнатися більше про отримання імені класу на Java .