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;}}