反射获取对象的属性值
Posted imsoft.cnblogs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射获取对象的属性值相关的知识,希望对你有一定的参考价值。
1 > bean 对象
package com.whbs.bean;
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 > 反射测试
package com.whbs.test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import com.whbs.bean.UserBean;
public class Test1 {
public static void main(String[] args) throws Exception {
/*
* 实列化类 方法 1
*/
//String classPath = "com.whbs.bean.UserBean";
//Class cla = Test1.class.getClassLoader().loadClass(classPath);
//Object ob = cla.newInstance();
/*
* 实列化类 方法 2
*/
UserBean bean = new UserBean();
bean.setId(100);
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 方法的值
}
}
}
}
转至: http://blog.csdn.net/xiaopeng__/article/details/6950205
以上是关于反射获取对象的属性值的主要内容,如果未能解决你的问题,请参考以下文章