IntelliJ IDEA Project視窗的一些設定詳解
阿新 • • 發佈:2020-08-21
## 軟體包 java.lang.reflect 的描述
提供類和介面,以獲得關於類和物件的反射資訊。
在安全限制內,反射允許程式設計訪問關於載入類的欄位、方法和構造方法的資訊,
並允許使用反射欄位、方法和構造方法對其底層對等項進行操作。
Java的反射機制是指在程式的執行狀態中,可以構造任意一個類的物件,可以瞭解任意一個物件所屬的類,可以瞭解任意一個類的成員變數和方法,
可以呼叫任意一個物件的屬性和方法
jdbc(資料庫連線技術)在載入驅動時運用到了反射技術
然後我們瞭解一下java程式執行過程和使用反射後java程式的執行過程:
java程式執行過程:Student.java==>編譯==>Student.class==>java虛擬機器==>執行程式
java放射: ?==>編譯器==>執行程式==>編譯器
反射機制和java.lang.Class<T>這個類息息相關,
因為z整個反射機制j就是基於對Class物件的操作,瞭解反射之前,我們需要先了解這個類.
Class這個類很特殊的一個名字對吧,那麼它的意義肯定也非同一般。一句話,Class這個類就代表z正在執行的java應用程式的類和介面。
如果把一個類比作成一個人,那麼Class物件就相等於這個人的資料卡片,關於這個人的一起都在這個小小的資料卡片中儲存著。
下面是程式碼:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class work2 {
public static void main(String[] args) {
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println("請輸入任意類的名字");
String classname=br.readLine();
Class cs=Class.forName(classname);
while (cs!=null){
System.out.println(cs);
cs=cs.getSuperclass();
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
package work1;
import java.util.List;
public class work1 {
public static void main(String[] args) {
Class cs= List.class;
System.out.println("相關資訊:");
System.out.println("類名:"+cs.getName());
System.out.println("包名:"+cs.getPackage());
System.out.println("是否為介面:"+cs.isInterface());
System.out.println("是否為陣列:"+cs.isArray());
System.out.println("是否為基本型別:"+cs.isPrimitive());
System.out.println("獲得父類的class物件:"+cs.getSuperclass());
}
}
執行圖:
心得總結:每天積累一點點,這樣就不會掉頭髮了。