`
fanjf
  • 浏览: 329795 次
  • 性别: 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

分享到:
评论

相关推荐

    DOM4J创建XML是一个实例

    在Java开发中,DOM4J是一个非常流行的XML处理库,它提供了丰富的API来操作XML文档,包括创建、读取、修改和查询XML。本实例主要介绍了如何使用DOM4J来创建XML文档,同时结合了JSP(JavaServer Pages)和JavaBean技术...

    javabean到XML的转换

    JavaBean是一种Java编程语言中的设计模式,用于封装数据和业务逻辑,它提供了一种标准的方式来创建可重用的、组件化的对象。XML(eXtensible Markup Language)则是一种用于存储和传输数据的标记语言,广泛应用在...

    xsd生成javaBean

    将XSD转换为JavaBean后,开发者可以更轻松地在Java程序中读取、写入和操作XML数据,而不必直接处理XML字符串或DOM节点。 Castor是一个流行的Java库,专门用于对象关系映射(ORM)和XML绑定。在本案例中,Castor提供...

    用JOX实现xml和javabean的相互转换

    在提供的XML文件`test1.xml`中,可以看到与`TestBean`和`Sub`类对应的结构。JOX会根据这些XML元素和属性,通过反射机制调用Java Bean的setter方法来填充对象。 JOX的优势在于其简洁的API和对JavaBeans规范的良好...

    Dm4J操作xml文件.rar

    Dm4J可能利用DOM4J的API实现了其核心功能,例如使用`Document`对象表示整个XML文档,使用`SAXReader`进行快速的XML解析,以及使用`Element`对象来操作XML元素。 5. **SAXReader的使用**:SAX(Simple API for XML)...

    Xml与javaBean互转.zip

    4. **StAX(Streaming API for XML)**:StAX是一种基于流的XML解析器,提供了一种读取和写入XML的迭代方法。它可以更有效地处理大文件,因为它允许程序员控制解析过程,而不是等待解析器触发事件。StAX的`...

    xml解析及使用XStream实现javaBean与xml之间的转换

    在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...

    java持久化工具类:JavaBean与XML

    在持久化场景中,JavaBean常作为数据对象,其属性对应数据库表中的字段,getters和setters方法用于读取和设置数据,便于与数据库交互。 **XML** XML(eXtensible Markup Language)是一种标记语言,它定义了规则来...

    一个关于递归读取xml 并返回到javaBean的小例子

    通过这种方式,我们可以利用Java和XML的特性,结合递归算法,高效地将XML数据映射到JavaBean对象。在实际应用中,我们可能还会考虑错误处理、类型转换、以及更复杂的XML结构。但是,这个简单的例子已经展示了基本...

    xml 与JAVAbean转换

    XML(eXtensible Markup Language)是...总的来说,XML与JavaBean之间的转换是Java开发中常见的任务,涉及到多种技术和库,包括但不限于JAXB、DOM、SAX以及各种辅助工具。理解这些概念和用法对于处理XML数据至关重要。

    xml与javabean的相互转换

    在Java中,XML与JavaBean之间的转换主要依赖于两个关键的技术:JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)。JAXB是Java平台标准的一部分,它允许开发者将Java对象绑定到XML文档,...

    XMLBean的例子

    XMLBean是Apache软件基金会开发的一个Java库,它允许开发者通过简单的API来操作XML文档,将XML数据绑定到Java对象上,以及将Java对象序列化为XML。XMLBean提供了高效的、类型安全的方式来处理XML文档,无需深入理解...

    xml和bean之间的相互转换源码

    在Java开发中,XML(可扩展标记语言)和Bean之间的相互转换是常见的操作,尤其是在处理配置文件、数据持久化或Web服务时。这里的"bean"通常指的是JavaBeans,即符合特定设计模式的Java对象,它们封装了数据并提供了...

    xml和bean 互相转换

    1. **解析XML**:Java中使用DOM(文档对象模型)、SAX(简单API for XML)或StAX(流式API for XML)等解析器读取XML文件并将其转化为内存中的对象结构。DOM一次性加载整个XML文档,适合小文件;SAX事件驱动,逐行...

Global site tag (gtag.js) - Google Analytics