1. 程式人生 > >Java 獲取Class例項4中方式

Java 獲取Class例項4中方式

Java 獲取Class例項4中方式

  1. 前提:若已知具體的類,通過類的class屬性獲取,該方法最為安全可靠,程式效能最高
    例項:Class clazz = String.class;

  2. 前提:已知某個類的例項,呼叫該例項的getClass()方法獲取Class物件
    例項:Class clazz = “testReflection.Person”.getClass();

  3. 前提:已知一個類的全類名,且該類在類路徑下,可通過Class類的靜態方法forName()獲取,可能丟擲ClassNotFoundException
    例項:Class clazz = Class.forName(“java.lang.String”);

  4. 通過類的載入器
    ClassLoader cl = this.getClass().getClassLoader();
    Class clazz4 = cl.loadClass(“類的全類名”);

  5. 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);
	}