XML 文件解析 利用反射原理 JavaBean 工具类

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wslibin0410/article/details/78343912

找了很多资料,自己边看别人的边写的,希望 提供一个思路:



import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

import org.dom4j.Element;
public class Dom4JUtils {

        // 方法入参为一个dom4j 解析的根节点 直接转化成javaBean  Object 是要转化的javaBean类
	public static Object EleToBean(Element e, Object obj){
		Field[] declaredFields = obj.getClass().getDeclaredFields();
        Method getmeth;  //实例的get方法    
        Method setmeth; //实例的set方法   

        Field[] properties = obj.getClass().getDeclaredFields();//获得实例的属性   
        try {
		for (int j = 0; j < properties.length; j++) {//遍历所有类中的属性得到相应的set方法
                      setmeth = obj.getClass().getMethod(   
                            "set"  
                                    + properties[j].getName().substring(0, 1)   
                                            .toUpperCase()   
                                    + properties[j].getName().substring(1),properties[j].getType());   
                    
                    String name = properties[j].getName();
                    String upperCase = name.toUpperCase();//因为 返回的xml文件都是大写的 所以我这转化了一下
                    setmeth.invoke(obj, e.elementText(upperCase));//将对应节点的值存入   
                }   
			} catch (IllegalAccessException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}  
            catch (NoSuchMethodException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (SecurityException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (IllegalArgumentException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			} catch (InvocationTargetException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		return obj;
	}
}




展开阅读全文

没有更多推荐了,返回首页