使用反射举例

来源:互联网 发布:程序员难学吗 编辑:程序博客网 时间:2024/06/06 08:27

public Object test(String cn){
//根据传的参数创建对象,并且调用对象中所有属性的set方法赋值(赋什么值没有要求)
//最后把这个对象返回
//在方位外面接收到这个对象后强制转为对应的类型 然后调用get方法查看赋值是否成功
}

package d13e1;

import java.lang.reflect.Method;

public class Test {

private int age;private String name;private Long id;public static void main(String[] args) {    Test t = new Test();    t = (Test) t.test("d13e1.Test");    System.out.println(t);}public Object test(String cn) {    Object object = null;    try {        object = Class.forName(cn).newInstance();        Class<? extends Object> c = object.getClass();        Method methodint = c.getMethod("setAge", int.class);        Method methodString = c.getMethod("setName", String.class);        Method methodlong = c.getMethod("setId", Long.class);        methodint.invoke(object, 10);        methodlong.invoke(object, 1929018L);        methodString.invoke(object, "小明");    } catch (Exception e) {        e.printStackTrace();    }    return object;}public int getAge() {    return age;}public void setAge(int age) {    this.age = age;}public String getName() {    return name;}public void setName(String name) {    this.name = name;}public Long getId() {    return id;}public void setId(Long id) {    this.id = id;}@Overridepublic String toString() {    return "T [age=" + age + ", name=" + name + ", id=" + id + "]";}

}