Java通过反射得到属性的值和设置属性的值

来源:互联网 发布:淘宝网1 8米纯棉床罩 编辑:程序博客网 时间:2024/06/05 16:10

反射获取实体实行值和设置属性值

实例:
1、实体

public class UserBean {    private Integer id;    private int age;    private String name;    private String address;   public UserBean(){       System.out.println("实例化");    }    public Integer getId() {       return id;    }    public void setId(Integer id) {       this.id = id;    }    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 String getAddress() {       return address;    }    public void setAddress(String address) {       this.address = address;    }}

2、 反射测试

public class Test1 {    public static void main(String[] args) throws Exception {       /*        * 实列化类 方法1        */       //String classPath = "包路径";       //Class cla = Test1.class.getClassLoader().loadClass(classPath);       //Object ob = cla.newInstance();       /*        * 实列化类 方法2        */       UserBean bean = new UserBean();       bean.setId(1003);       bean.setAddress("成都");       //得到类对象       Class userCla = (Class) bean.getClass();       /*        * 得到类中的所有属性集合        */       Field[] fs = userCla.getDeclaredFields();       for(int i = 0 ; i < fs.length; i++){           Field f = fs[i];           f.setAccessible(true); //设置些属性是可以访问的           Object val = f.get(bean);//得到此属性的值              System.out.println("name:"+f.getName()+"\t value = "+val);           String type = f.getType().toString();//得到此属性的类型           if (type.endsWith("String")) {              System.out.println(f.getType()+"\t是String");              f.set(bean,"12") ;        //给属性设值           }else if(type.endsWith("int") || type.endsWith("Integer")){              System.out.println(f.getType()+"\t是int");              f.set(bean,12) ;       //给属性设值           }else{              System.out.println(f.getType()+"\t");           }       }       /*        * 得到类中的方法        */       Method[] methods = userCla.getMethods();       for(int i = 0; i < methods.length; i++){           Method method = methods[i];           if(method.getName().startsWith("get")){              System.out.print("methodName:"+method.getName()+"\t");              System.out.println("value:"+method.invoke(bean));//得到get 方法的值           }       }    }
原创粉丝点击