getName () - Gibt den Namen der Entität (Klasse, Schnittstelle, Array-Klasse, primitiver Typ oder void), die von diesem Class-Objekt dargestellt wird, als String zurück.
getCanonicalName () - gibt den kanonischen Namen der zugrunde liegenden Klasse zurück, wie in der Java-Sprachspezifikation definiert.
getSimpleName () - gibt den einfachen Namen der zugrunde liegenden Klasse zurück, dh den Namen, den sie im Quellcode angegeben hat.
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
}
}
Ein Unterschied besteht darin, dass Sie bei Verwendung einer anonymen Klasse einen Nullwert erhalten können, wenn Sie versuchen, den Namen der Klasse mithilfe von zu ermittelngetCanonicalName()
Eine andere Tatsache ist, dass sich die getName()
Methode anders verhält als die getCanonicalName()
Methode für innere Klassen . getName()
verwendet einen Dollar als Trennzeichen zwischen dem kanonischen Namen der umschließenden Klasse und dem einfachen Namen der inneren Klasse.
Weitere Informationen zum Abrufen eines Klassennamens in Java .