Java 獲取Class例項4中方式
阿新 • • 發佈:2018-12-18
Java 獲取Class例項4中方式
-
前提:若已知具體的類,通過類的class屬性獲取,該方法最為安全可靠,程式效能最高
例項:Class clazz = String.class; -
前提:已知某個類的例項,呼叫該例項的getClass()方法獲取Class物件
例項:Class clazz = “testReflection.Person”.getClass(); -
前提:已知一個類的全類名,且該類在類路徑下,可通過Class類的靜態方法forName()獲取,可能丟擲ClassNotFoundException
例項:Class clazz = Class.forName(“java.lang.String”); -
通過類的載入器
ClassLoader cl = this.getClass().getClassLoader();
Class clazz4 = cl.loadClass(“類的全類名”); -
Demo
@Test public void test4() throws ClassNotFoundException { //1.呼叫執行時類本身的.class屬性 Class clazz1 = Person.class; System.out.println(clazz1.getName()); Class clazz2 = String.class; System.out.println(clazz2.getName()); //2.通過執行時類的物件獲取 Person p = new Person(); Class clazz3 = p.getClass(); System.out.println(clazz3.getName()); //3.通過Class的靜態方法,此方法體現反射的動態性 String className = "testReflection.Person"; Class clazz4 = Class.forName(className); System.out.println(clazz4.getName()); //4.通過類的載入器 ClassLoader classLoader = this.getClass().getClassLoader(); Class clazz5 = classLoader.loadClass(className); System.out.println(clazz5); }