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

感謝

黑馬程序員

以及勤勞的自己

關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計划


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM