1.反射基本概念
反射:将类的各个组成部分封装为其他对象,这就是反射。
好处:1. 在程序运行中操作这些对象
2. 降低程序的耦合度,提高程序的可扩展性。
2.获取class对象方法
3.class对象功能
获取功能:
4.案例:
需求
实现方法:
1.配置文件
2.反射
步骤:
1.将需要创建的对象全类名和需要执行的方法写入配置文件中。
2.将程序加载并读取配置文件
3.使用反射技术来加载文件进内存
4.创建对象
5.执行方法
案例结构
代码实现:
package reflect;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;
public class ReflectTest{
public static void main(String[] args) throws Exception {
//可以创建任意对象,执行任意方法
//加载配置文件
//1.1加载配置文件
Properties pro = new Properties();
//1.2加载配置文件转换为一个集合
//1.2.1获取class配置文件
ClassLoader cls = ReflectTest.class.getClassLoader();
InputStream is = cls.getResourceAsStream("jdbc.properties");
pro.load(is);
//2.获取配置文件的数据
String classname = pro.getProperty("className");
String methodName = pro.getProperty("methodName");
//3.加载该类进内存
Class cls1 = Class.forName(classname);
//4创建对象
Object obj = cls1.newInstance();
//5.获取方法
Method method = cls1.getMethod(methodName);
//6.执行方法
method.invoke(obj);
}
}
配置文件properties
className=domain.person
methodName=eat