JAVA--用反射读取配置文件

//配置文件
test.properties
	className = Reflection.Student
	methodName = show
	
test.txt
	className = Reflection.Student
	methodName = show
package Reflection;

public class Student {
          
   
    public void show(){
          
   
        System.out.println("hhh");
    }
    public void show(String s){
          
   
        System.out.println(s);
    }
}
package Reflection;


import java.lang.reflect.Method;
import java.util.Properties;

public class ReflectFile {
          
   

    //txt、properties
    public static void main(String[] args) throws Exception{
          
   
        //获取配置文件对象
        Properties pro=new Properties();
        //方式1
//        //获取输入流
//        FileReader in = new FileReader("test.txt");
//        //将流加载到配置文件对象中
//        pro.load(in);
        //方式二
        pro.load(ReflectFile.class.getClassLoader().getResourceAsStream("test.properties"));
        //通过反射获取Class对象
        String forName=pro.getProperty("className");
        Class stuClass=Class.forName(forName);
        //获取方法
        String methodName=pro.getProperty("methodName");
        Method m=stuClass.getMethod(methodName);
        //调用方法
        m.invoke(stuClass.getConstructor().newInstance(),null);
        //获取方法
        methodName=pro.getProperty("methodName");
        m=stuClass.getMethod(methodName,String.class);
        //调用方法
        m.invoke(stuClass.getConstructor().newInstance(),"null");


    }
}
经验分享 程序员 微信小程序 职场和发展