反射框架

import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

import static java.lang.Class.forName;

public class ReflectionTest {
    public static void main(String[] args) throws Exception {
        //1.加载配置文件
        //1.1创建Peoperties对象
        Properties pro=new Properties();
        //1.2加载配置文件,转换为一个集合
        //1.2.1获取class目录下的配置文件
        ClassLoader classLoader=ReflectionTest.class.getClassLoader();
        InputStream is=classLoader.getResourceAsStream("pro.properties");
        pro.load(is);
        //2.获取配置文件中定义的数据
        String className=pro.getProperty("className");
        String methondName=pro.getProperty("methondName");
        //3.加载该类进内存
        Class cls=Class.forName(className);
        //4.创建对象
        Object obj=cls.newInstance();
        //5.获取方法对象
        Method method=cls.getMethod(methondName);
        //6.执行方法
        method.invoke(obj);
        
        }
}
className=unit.Person
methondName=eat
public class Person {
    private String name;
    private int age;

    public void setAge(int age) {
        this.age = age;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }
    public void eat(){
        System.out.println("eat....");
    }
}

 

posted @ 2021-12-29 20:43  Blue啊  阅读(30)  评论(0编辑  收藏  举报