`
fanjf
  • 浏览: 299098 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合

    博客分类:
  • XML
 
阅读更多

 

在上面这篇文档中,作者使用了Java jdk中的反射来调用set方法。

个人愚见:如果是javaBean的话,我们可以使用内省来操作属性,jdk中提供了:

java.beans.Introspector和java.beans.PropertyDescriptor来进行内省操作

private static void setProperties(Object pt1, String propertyName,
            Object value) throws IntrospectionException,
            IllegalAccessException, InvocationTargetException {
        PropertyDescriptor pd2 = new PropertyDescriptor(propertyName,pt1.getClass());
        Method methodSetX = pd2.getWriteMethod();
        methodSetX.invoke(pt1,value);
    }

    private static Object getProperty(Object pt1, String propertyName)
            throws IntrospectionException, IllegalAccessException,
            InvocationTargetException {
        /*PropertyDescriptor pd = new PropertyDescriptor(propertyName,pt1.getClass());
        Method methodGetX = pd.getReadMethod();
        Object retVal = methodGetX.invoke(pt1);*/
       
        BeanInfo beanInfo =  Introspector.getBeanInfo(pt1.getClass());
        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();
        Object retVal = null;
        for(PropertyDescriptor pd : pds){
            if(pd.getName().equals(propertyName))
            {
                Method methodGetX = pd.getReadMethod();
                retVal = methodGetX.invoke(pt1);
                break;
            }
        }
        return retVal;
    }

另外,我们也可以使用Apache提供的给我们的BeanUtils和PropertyUtils来进行内省操作

org.apache.commons.beanutils.PropertyUtils.setProperty(Object bean, String name, Object value)

sorg.apache.commons.beanutils.BeanUtils.etProperty(Object bean, String name, Object value)

 

 

转载地址:http://www.cnblogs.com/tclee/archive/2012/02/28/2012773.html

分享到:
评论

相关推荐

    基于Java的XML解析与反射设计模式.doc

    所以在读取大型xml时可以把 xstream与saxparser结合起来使用,用saxparser读取整个xml把核心数据部分让xstrea m来解析成javabean,这样既解决了大数据的问题又利用了xstream快速转化javabean的 优点。 为了利于多...

    JSP实例编程100例

    顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 ...99、DOM读取XML文档 100、SAX读取XML文档

    JAP编程学习100例

    顺序如下: 1、多种字体大小显示 2、c:out标记输出 3、获取当前时间 4、include包含语句 5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 ...99、DOM读取XML文档 100、SAX读取XML文档

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    java web 视频、电子书、源码(李兴华老师出版)

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    李兴华Java Web开发实战经典(高清版) Part2

    3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 ...

    超级有影响力霸气的Java面试题大全文档

    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 17、...

    apache-commons源码及jar文件

    Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行...

    java面试题

    答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成,栈按照后进先出的方式进行处理。堆是栈的一个组成元素。 EJB和JavaBean的区别? 答:EJB不是一般的JavaBean,EJB是企业级的JavaBean,EJB一共分为3种...

    java 面试题 总结

    wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。 14、Overload...

    JAVA面试题最全集

    77.JavaBean与EJB有什么区别? 78.软件开发生命周期有哪几个阶段? 79.软件开发有哪些因素? 80.软件开发中如何进行版本控制? 81.UML中,类视图如何表示类中的继承与聚合? 82.客户端游标与服务器端游标的区别? 83...

Global site tag (gtag.js) - Google Analytics