`
j夫子
  • 浏览: 91331 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

KSOAP的soapObject转换成pojo的工具类

    博客分类:
  • java
 
阅读更多

最近在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;
	}
}
1
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics