日期:2014-05-20  浏览次数:20681 次

这样的java反射,怎么实现
现有一个Object,里面有若干属性以及这些属性所对应的set,get方法,我要把该对象序列化成一个以成对键值为表现的String字符串
例如现有类   User它有   id,name,age,sex四个属性以及这些属性所对应的set,get方法,
我创建一个User的对象:User   user   =   new   User(42645, "Jack ",12, "male ");
我要把user对象序列化为如下的String字符串
<user>
<id> 42645 </id>
<name> Jack </name>
<age> 12 </age>
<sex> male </sex>
</user>
这样的功能我如何使用反射的方法实现呢?

------解决方案--------------------
通过object.getClass()得到,你的object的运行时类型。
通过class.getDeclaredFields(),可以得到该object的所有的filed。
通过field.getName()得到这些field的名字,
通过field.get(object)得到这个field的值,从而可以得到你需要的字符串。

这是用filed来处理,也可以通过Method来处理,查查jdk的api就可以了。