Java--反射(框架設計的靈魂)案例
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在于個人學習和經驗匯總,如有什么地方侵權,請聯系本人洗掉,謝謝!
需求
寫一個"框架",不能改變該類的任何代碼的前提下,可以幫我們創建任意類的物件,并且執行其中任意方法
使用
- 組態檔
- 反射
步驟
- 將需要創建的物件的全類名和需要執行的方法定義在組態檔中
- 在程式中加載讀取組態檔
- 使用反射技術來加載類檔案進記憶體
- 創建物件
- 執行方法
組態檔

className=Student
methodName=sleep
代碼
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;
/**
* @author tanglei
* @date 2020/6/11 3:10 下午
*/
public class ReflectTest {
public static void main(String[] args) throws Exception {
Student s = new Student();
Properties pro = new Properties();
//獲取組態檔的路徑
ClassLoader classLoader = ReflectTest.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("pro.properties");
pro.load(is);
String className = pro.getProperty("className");
String methodName = pro.getProperty("methodName");
//加載類進記憶體
Class cla = Class.forName(className);
Object obj = cla.newInstance();
//加載方法進記憶體
Method method = cla.getMethod(methodName);
method.invoke(obj);
}
}
感謝
黑馬程式員
以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計劃
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/165593.html
標籤:Java
