反射

来源:互联网 发布:safari 64位 windows 编辑:程序博客网 时间:2024/06/08 10:51

Demo1.java

package cn.itcast.instrospector;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.util.Objects;/** * Created by LiJing on 2017/8/8. */public class Demo1 {    public static void main(String[] args) throws Exception {        Person p =(Person)getInstance();        System.out.println(p);    }    public static Object getInstance() throws Exception {        BufferedReader bufferedReader = new BufferedReader(new FileReader("d:\\a.txt"));        String className = bufferedReader.readLine();        Class clazz = Class.forName(className);        Constructor constructor = clazz.getConstructor(null);        Object o = constructor.newInstance();        String line = null ;        while((line = bufferedReader.readLine())!=null){            String[] dates = line.split("=");//            一定要用getDeclaredField()方法 不能用getField方法             Field field = clazz.getDeclaredField(dates[0]);            field.set(o,dates[1]);        }        return o;    }}

Person.java

package cn.itcast.instrospector;/** * Created by LiJing on 2017/8/8. */public class Person {    String id;    String name;    public Person(String id,String name){        this.id = id;        this.name = name;    }    public Person(){    }    @Override    public String toString(){        return "id号:"+this.id+"     名字:"+this.name;    }}

这里写图片描述

这里写图片描述