KSOAP的soapObject转换成pojo的工具种
KSOAP的soapObject转换成pojo的工具类
最近在android上使用KSOAP,于是写了这个工具类。
比较简单,利用反射将属性注入到pojo里面去。
使用方法:
User u = SoapObjectUtil.soapToPojo(User.class,soapObject);
代码:
/**
* soapObject->javaBean转化工具
* @author zjf
*
*/
public class SoapObjectUtil {
/**
* soap转化为javabean
* @param <T>
* @param clazz
* @param soapObject
* @return
* @throws IllegalArgumentException
* @throws SecurityException
* @throws IllegalAccessException
* @throws InvocationTargetException
* @throws NoSuchMethodException
* @throws InstantiationException
*/
public static <T> T soapToPojo(Class<T> clazz, SoapObject soapObject)
throws IllegalArgumentException, SecurityException,
IllegalAccessException, InvocationTargetException,
NoSuchMethodException, InstantiationException {
Field[] fields = clazz.getDeclaredFields();
Object obj = clazz.newInstance();
for (Field f : fields) {
String method = "set" + f.getName().substring(0, 1).toUpperCase()
+ f.getName().substring(1);
if (hasMethod(method, clazz.getMethods())) {
clazz.getMethod(method, new Class[] { f.getType() }).invoke(
obj,
new Object[] { soapObject.getProperty(f.getName()) });
}
}
return (T) obj;
}
private static boolean hasMethod(String methodName, Method[] method) {
for (Method m : method) {
if (methodName.equals(m.getName())) {
return true;
}
}
return false;
}
}