用反射实现简单的框架

用反射实现一个简单的java类:

  • 不能改变该类的任何代码。可以创建任意类的对象,可以执行任意方法
    可以通过只改变配置文件的方式去实现不同的类中的方法
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

/**
 * 框架类
 */
public class ReflectTest {
    public static void main(String[] args) throws  Exception{
        // 可以创建任意类的对象,可以指向任意方法
        /*
           前提: 不能改变该类的任何代码。可以创建任意类的对象,可以执行任意方法
         */
        /*Person p = new Person();
        p.eat();*/

        /*Student s = new Student();
        s.sleep();*/

        // 1.加载配置文件
        // 1.1创建Properties
        Properties pro = new Properties();
        // 1.2加载配置文件,转换为一个集合
        // 1.2.1获取class目录下的配置文件的方法
        ClassLoader classLoader = ReflectTest.class.getClassLoader();
        InputStream is = classLoader.getResourceAsStream("pro.properties");
        pro.load(is);

        // 2.获取配置文件中的数据
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");

        // 3.加载该类进内存
        Class cls = Class.forName(className);
        // 4. 创建对象
        Object obj = cls.newInstance();
        // 5.获取方法对象
        Method method = cls.getMethod(methodName);
        // 6.执行方法
        method.invoke(obj);
    }
}

配置文件
Snipaste_2019-07-23_10-09-39.jpg

猜你喜欢

转载自www.cnblogs.com/minghaiJ/p/11230129.html
今日推荐