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

  • 相关阅读:
    es-07-head插件-ik分词器插件
    es-01-简介
    es-02-elasticsearch安装及遇到的问题
    es-03-DSL的简单使用
    es-04-mapping和setting的建立
    lucene-01-简介
    Scipy---1.常数和特殊函数
    Pandas---12.数据加载和保存
    Pandas---11.移动窗口函数
    Pandas---10.DataFrame绘图
  • 原文地址:https://www.cnblogs.com/xiamaojjie/p/15072791.html
Copyright © 2011-2022 走看看