通过Java反射机制获取对象、方法和成员变量

来源:互联网 发布:安卓儿童编程软件 编辑:程序博客网 时间:2024/05/21 09:12

先定义一个JavaBean

package com.jim.test.Test;public class User {    private int id;    private String name = "abc";    private String password = "12345";    public int getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    private void privateMethod() {        System.out.println("access the private method");    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", name='" + name + '\'' +                ", password='" + password + '\'' +                '}';    }}
  1. 通过类名生成对象
@Test    public void testCreateObjectByClassName() throws ClassNotFoundException, InstantiationException, IllegalAccessException {        Class<?> clazz = Class.forName("com.jim.test.Test.User");        User user = (User) clazz.newInstance();        System.out.println(user);    }
  1. 访问私有方法
@Test    public void testAccessPrivateMethod() throws Exception {        Class<?> clazz = Class.forName("com.jim.test.Test.User");        Method method = clazz.getDeclaredMethod("privateMethod", null);        method.setAccessible(true);        method.invoke(clazz.newInstance(), null);    }
1 0
原创粉丝点击