zoukankan      html  css  js  c++  java
  • JAVA,反射使用demo,通过读取配置文件创建类,调用方法

    反射的好处:通过读取配置文件拿到类的全路径和方法,可以不改变代码的前提下,创建任意对象,调用任意方法。

    测试student类如图:

     配置文件如图:

     运行如图:

     测试代码如下:

    package com.java.day31UseReflect;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.Properties;
    
    // 不改变任意代码前提下,创建任意对象,并执行任意方法
    // 步骤 配置文件和反射
    public class UseReflect {
        public static void main(String[] args) throws IOException, ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException {
            // 加载配置文件
            Properties pro = new Properties();
            ClassLoader classLoader = UseReflect.class.getClassLoader();
            // 找到文件路径,加载文件
            InputStream stream = classLoader.getResourceAsStream("conf.properties");
            pro.load(stream);
            // 读取配置文件,拿到类路径和方法
            String className = pro.getProperty("className");
            String methodName = pro.getProperty("methodName");
            // 拿到字节码,加载进内存
            Class<?> c1 = Class.forName(className);
            // 创建对象
            Object obj = c1.newInstance();
            // 获取方法对象
            Method c1Method = c1.getMethod(methodName);
            // 调用方法执行
            c1Method.invoke(obj);
    
    
        }
    }

  • 相关阅读:
    2020面向对象程序设计寒假作业2 题解
    题解 P3372 【【模板】线段树 1】
    Global variant VS local variant
    u2u
    深入浅出PowerShell系列
    深入浅出WF系列
    debug
    深入浅出SharePoint系列
    InfoPath debug
    深入浅出Nintex系列
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/15072791.html
Copyright © 2011-2022 走看看