Heim  >  Artikel  >  Java  >  Welche Möglichkeiten gibt es, Klassen in Java zu erhalten?

Welche Möglichkeiten gibt es, Klassen in Java zu erhalten?

WBOY
WBOYnach vorne
2023-05-12 14:34:062349Durchsuche

Erfassungsmethode

1 Wenn die spezifische Klasse bekannt ist, erhalten Sie sie über das Klassenattribut der Klasse. Diese Methode ist die sicherste und zuverlässigste und weist die höchste Programmleistung auf.

2. Wenn eine Instanz einer bestimmten Klasse bekannt ist, rufen Sie die Methode getclass() der Instanz auf, um das Klassenobjekt abzurufen.

3. Der vollständige Klassenname ist bekannt und die Klasse befindet sich im Klassenpfad. Sie kann über die häufiger verwendete statische Methode forName() der Class-Klasse abgerufen werden.

4. Durch den Klassenlader.

Instanzen

@Test
public void test2() throws ClassNotFoundException {
    //方式一:调用运行时类的属性:.class
    Class<Person> clazz1 = Person.class;
    System.out.println(clazz1);//class cn.bruce.java.Person
 
    //方式二:通过运行时类的对象,调用getClass()
    Person p1 = new Person();
    Class<? extends Person> clazz2 = p1.getClass();
    System.out.println(clazz2);//class cn.bruce.java.Person
 
    //方式三:调用Class的静态方法:forName(String classPath)
    Class<?> clazz3 = Class.forName("cn.bruce.java.Person");
    System.out.println(clazz3);//class cn.bruce.java.Person
 
    System.out.println(clazz1 == clazz2);//true
    System.out.println(clazz1 == clazz3);//true
    //方式四:使用类的加载器:ClassLoader  (了解)
    ClassLoader classLoader = ReflectionTest.class.getClassLoader();
    Class<?> clazz4 = classLoader.loadClass("cn.bruce.java.Person");
    System.out.println(clazz4);//class cn.bruce.java.Person
    System.out.println(clazz1 == clazz4);//true
}

Das obige ist der detaillierte Inhalt vonWelche Möglichkeiten gibt es, Klassen in Java zu erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen