[javaSE] 反射-Class類的使用,javase-class
JAVA-Reflect 專題
①Class類的使用
②方法的反射
③成員變數的反射
④建構函式的反射
⑤java類的載入機制
Ⅰ在物件導向的世界裡,萬事萬物皆為對象
類是對象,類是java.lang.Class類的執行個體對象
ⅡClass類的執行個體對象有三種表示方式
//第一種表達方式(已知類名)
//第二種表達方式(已知對象)
//第三種表達方式(通過類全稱)
package com.tsh.reflect;public class ReflectDemo { public static void main(String[] args) { Foo foo1=new Foo(); //Class類的執行個體對象 //第一種表達方式(已知類名) Class c1=Foo.class; //第二種表達方式(已知對象) Class c2=foo1.getClass(); //第三種表達方式(通過類全稱) Class c3=null; try { c3=Class.forName("com.tsh.reflect.Foo"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //官網解釋:c1和c2表示了Foo類的類類型(class type) //一個類只可能是Class類的一個對象,因此下面的輸出true System.out.println(c1==c2); //可以通過類的類類型建立該類的執行個體對象 try { //該類需要有無參數的構造方法 Foo foo2=(Foo) c1.newInstance(); foo2.print(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }}class Foo{ void print(){ System.out.println("test"); }}