java通过读取本地文件获取反射方法参数,执行对象方法
Posted 篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java通过读取本地文件获取反射方法参数,执行对象方法相关的知识,希望对你有一定的参考价值。 运用到的知识点 IO流, 集合properties 反射 在工程目录下新建file config.properties 创建三个类Person Worker Student 测试类Test 以上是关于java通过读取本地文件获取反射方法参数,执行对象方法的主要内容,如果未能解决你的问题,请参考以下文章 JAVA反射问题,一个方法类的参数能否通过设置成泛型或者啥来接收反射的CLASS。#one time only can run one method
className=demo03.Student
methodName=study
#className=demo03.Person
#methodName=eat
#className=demo03.Work
#methodName=job
package demo03;
public class Student {
public void study(){
System.out.println("学生在学习");
}
}
package demo03;
public class Person {
public void eat(){
System.out.println("人在吃。。。");
}
}
package demo03;
public class Worker {
public void job(){
System.out.println("上班族在工作");
}
}
package demo03;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Properties;
/*
* 调用Person方法,调用Student方法,调用Worker方法
* 类不清楚,方法也不清楚
* 通过配置文件实现此功能
* 运行的类名和方法名字,以键值对的形式,写在文本中
* 运行哪个类,读取配置文件即可
* 实现步骤:
* 1.准备配置文件,键值对
* 2.IO流读取配置文件 Reader
* 3.文件中的键值对存储到集合中 Properties
* 集合保存的键值对,就是雷鸣和方法名
* 4.反射获取指定类的Class文件对象
* 5.class文件对象,获取指定的方法
* 6.运行方法
*/
public class Test {
public static void main(String[] args) throws Exception{
//IO流读取配置文件
FileReader fr=new FileReader("config.properties");
//创建集合对象
Properties pro=new Properties();
//调用集合方法load,传递流对象
pro.load(fr);
fr.close();
String className=pro.getProperty("className");
String methodName=pro.getProperty("methodName");
//反射获取指定类的class文件对象
Class c=Class.forName(className);
Object obj=c.newInstance();
//获取指定的方法名
Method method=c.getMethod(methodName);
method.invoke(obj);
}
}