Java中最強大的技術之一 反射 獲取Class類
- 1、反射概述
- 2、類的加載程序
- 3、獲取Class類的三種方式
- 3.1 通過 class.forname()來獲取Class物件
- 3.2 通過類名.class來獲取Class物件
- 3.3 通過物件的getClass()來獲取Class物件
- 3.4如果是一個基本資料型別,那么可以通過Type的方式來獲取Class物件
1、反射概述
JAVA反射機制是在運行狀態中,對于任意一個類,都能夠知道這個類的所有屬性和方法;
對于任意一個物件,都能夠呼叫它的任意一個方法和屬性;
這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為java語言的反射機制,
要想解剖一個類,必須先要獲取到該類的位元組碼檔案物件,
而解剖使用的就是Class類中的方法.所以先要獲取到每一個位元組碼檔案對應的Class型別的物件
2、類的加載程序
Class類的實體表示正在運行的Java應用程式中的類和介面
每個類只會產生一個Class物件,在類加載的時候自動創建

3、獲取Class類的三種方式
3.1 通過 class.forname()來獲取Class物件
Class clazz = Class.forName("com.mashibing.entity.Emp");
System.out.println(clazz.getPackage());
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getCanonicalName());
3.2 通過類名.class來獲取Class物件
Class<Emp> clazz = Emp.class;
System.out.println(clazz.getPackage());
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getCanonicalName());
3.3 通過物件的getClass()來獲取Class物件
Class clazz = new Emp().getClass();
System.out.println(clazz.getPackage());
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.getCanonicalName());
3.4如果是一個基本資料型別,那么可以通過Type的方式來獲取Class物件
Class type = Integer.TYPE;
System.out.println(type.getName());
System.out.println(type.getCanonicalName());
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258530.html
標籤:其他
上一篇:LeetCode 992 K個不同整數的子陣列 HERODING的LeetCode之路
下一篇:992. K 個不同整數的子陣列
