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!