使用反射来加载类

来源:互联网 发布:最新java培训视频教程 编辑:程序博客网 时间:2024/06/07 01:48
    Properties properties=new Properties();        BufferedReader read=new BufferedReader(new FileReader("class.txt"));        properties.load(read);        String className = properties.getProperty("className");        String method = properties.getProperty("method");        System.out.println("-------获取类对象文件--------");        Class   c = Class.forName(className);        System.out.println(c);        System.out.println("-------获取构造方法--------");        Constructor con = c.getDeclaredConstructor();        System.out.println(con);        System.out.println("-------获取成员方法--------");        Method method5 = c.getMethod("method5", String.class);        System.out.println(method5);        System.out.println("-------实例化对象--------");        Object obj = con.newInstance();        System.out.println(obj);        System.out.println("-------执行方法--------");        Object invoke = method5.invoke(obj, "你好");        System.out.println("-------方法返回值--------");        System.out.println(invoke);输出:-------获取类对象文件--------class cn.User-------获取构造方法--------public cn.User()-------获取成员方法--------public java.lang.String cn.User.method5(java.lang.String)-------实例化对象--------Person [name=null, id=0, password=null]-------执行方法--------show5:你好-------方法返回值--------你好

class.txt

className=cn.UsermethodName=method5

User

public class User {    private String name;    int id;    public String password;    public User() {    }    private User(String name) {        this.name = name;    }    User(String name, int id) {        this.name = name;        this.id = id;    }    public User(String name, int id, String password) {        this.name = name;        this.id = id;        this.password = password;    }    public void method(String s) {        System.out.println("method ");    }    public void method2(String s) {        System.out.println("method2");    }    private void method3() {        System.out.println("method3");    }    public void method4() {        System.out.println("show4");    }    public String method5(String s) {        System.out.println("show5:"+s);        return s;    }    @Override    public String toString() {        return "Person [name=" + name + ", id=" + id + ", password=" + password                + "]";    }}
0 0