java反射方法的使用代码

来源:互联网 发布:淘宝店铺布局图片多大 编辑:程序博客网 时间:2024/05/20 05:28

代码里面有各种功能的实现,如果有不懂的可以给本人留言我一定会回复你的

class Dog2 {    public int age = 1;    String name;    public Dog2() {    }    private Dog2(int age, java.lang.String name) {        this.age = age;        this.name = name;    }    private Dog2(String s) {        this.name = s;    }    public void dd() {        System.out.println("我是小狗,我喜欢吃骨头,我的名字是" + name);    }    @Override    public String toString() {        return "Dog1 [age=" + age + ", name=" + name + "]";    }}public class Test4 {    public static void main(String[] args) throws Exception {        // 获取对应类的字节码文件        Class c = Class.forName("test.tes.Dog2");        // 获取该类的构造方法        Constructor constr = c.getDeclaredConstructor(String.class);        constr.setAccessible(true);        // 通过该构造方法创建该类的实例对象,并把"大黄赋值给name"        Object o = constr.newInstance("大黄");        // 现在我们获取指定的成员变量反射,反射指向Dog2的age        Field fie = c.getDeclaredField("age");        // 通过o 为 指定的fie成员变量赋值成12        fie.set(o, 12);        System.out.println(o);// Dog1 [age=12, name=大黄]        // 现在我们调用Dog2里面的dd方法并且使用        Method met = c.getDeclaredMethod("dd");        met.invoke(o);//我是小狗,我喜欢吃骨头,我的名字是大黄    }}
0 0
原创粉丝点击