反射-通過反射獲取私有構造方法並使用
package cn.itcast_02;
import java.lang.reflect.Constructor;
/*
* 需求:通過反射獲取私有構造方法並使用
* private Person(String name){}
*
* Person p = new Person("風清揚");
* System.out.println(p);
*/
public class ReflectDemo3 {
public static void main(String[] args) throws Exception {
// 獲取位元組碼檔案物件
Class c = Class.forName("cn.itcast_01.Person");
// 獲取私有構造方法物件
// Constructor con = c.getConstructor(String.class);// NoSuchMethodException:每個這個方法異常
// 原因是一開始我們使用的方法getConstructor只能獲取public公共的,下面這種方式getDeclaredConstructor就可以了。
Constructor con = c.getDeclaredConstructor(String.class);
// 用該私有構造方法建立物件
// IllegalAccessException:非法的訪問異常。
// 暴力訪問
con.setAccessible(true);// 值為true則指示反射的物件在使用時應該取消Java語言訪問檢查。
Object obj = con.newInstance("風清揚");
System.out.println(obj);
}
}
相關文章
- 反射-通過反射獲取無參構造方法並使用反射構造方法
- 反射-通過反射獲取帶參構造方法並使用反射構造方法
- 反射-通過反射獲取成員變數並使用反射變數
- JAVA之反射學習2-獲取構造方法並使用Java反射構造方法
- 通過反射獲取私有內部類物件反射物件
- Java 通過反射獲取類的資訊(成員變數,成員方法,構造方法)Java反射變數構造方法
- 反射-通過反射獲取無參無返回值成員方法、帶參帶返回值成員方法並使用反射
- 通過反射獲取窗體例項反射
- 通過Java反射動態獲取資訊Java反射
- C#通過反射獲取類中的方法和引數個數,反射呼叫方法帶引數C#反射
- PHP --反射 --獲取類的方法PHP反射
- Java——通過反射獲取函式引數名稱Java反射函式
- 通過反射獲取上傳檔案方法引數中的檔名反射
- 通過反射獲取類的類名,方法和內部成員變數反射變數
- 反射-通過反射越過泛型檢查反射泛型
- JAVA之反射學習3-反射獲取成員變數並賦值Java反射變數賦值
- Java反射機制(得到所有的構造方法)Java反射構造方法
- org.reflections 介面通過反射獲取實現類原始碼研究反射原始碼
- 反射-通過反射執行配置檔案內容反射
- [bug]spring專案通過反射測試私有方法時,注入物件異常Spring反射物件
- java反射構建物件和方法的反射呼叫Java反射物件
- 反射的妙用:C#通過反射動態生成型別繼承介面並實現反射C#型別繼承
- 反射--Class物件功能--獲取Method反射物件
- 【譯】7. Java反射——私有欄位和私有方法Java反射
- .net中通過反射得到所有的私有欄位(包括父類)反射
- java對過反射呼叫方法Java反射
- C#通過反射獲取物件屬性,列印所有欄位屬性的值C#反射物件
- PHP通過反射實現物件的成員方法呼叫PHP反射物件
- 如何通過反射獲得方法的真實引數名(以及擴充套件研究)反射套件
- C# 通過反射建立例項C#反射
- 簡單介紹如何通過註解獲取反射的值反射
- golang通過反射設定結構體欄位的值Golang反射結構體
- ViewPager(通過反射修改viewpager切換速度)Viewpager反射
- Java自定義Annotation,通過反射解析AnnotationJava反射
- 反射如何獲取函式的引數名反射函式
- Java反射獲取類和物件資訊全解析Java反射物件
- 筆記-go反射操作私有變數筆記Go反射變數
- .NET Core 反射獲取所有控制器及方法上特定標籤反射