説明
1. 特定のクラスが既知の場合は、クラスの class 属性を通じて取得できます。この方法は最も安全で信頼性が高く、プログラムの品質も最も高いです。
2. 既知のクラスのインスタンスの場合、インスタンスの getclass() メソッドを呼び出して Class オブジェクトを取得します
3. クラスの静的メソッド forName() を取得しますクラス。クラスの完全なクラス名がわかっていて、そのクラスがクラス パス上にある場合、ClassNotFoundException がスローされる可能性があります (より一般的に使用されます)
4。クラス ローダー経由で
ClassLoader cl = this.getclass().getClassLoader(); Class clazz = cl.loadClass("类的全类名");
インスタンス
@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 }
以上がJavaでクラスを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。