Java--反射(框架設計的靈魂)案例

Java–反射(框架設計的靈魂)案例

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗彙總,如有什麼地方侵權,請聯繫本人刪除,謝謝!

需求

寫一個"框架",不能改變該類的任何代碼的前提下,可以幫我們創建任意類的對象,並且執行其中任意方法

使用
  1. 配置文件
  2. 反射

步驟

  1. 將需要創建的對象的全類名和需要執行的方法定義在配置文件中
  2. 在程序中加載讀取配置文件
  3. 使用反射技術來加載類文件進內存
  4. 創建對象
  5. 執行方法

配置文件

image-20200611153101415

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);
    }
}

感謝

黑馬程序員

以及勤勞的自己

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章