在上面这篇文档中,作者使用了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开发中,DOM4J是一个非常流行的XML处理库,它提供了丰富的API来操作XML文档,包括创建、读取、修改和查询XML。本实例主要介绍了如何使用DOM4J来创建XML文档,同时结合了JSP(JavaServer Pages)和JavaBean技术...
JavaBean是一种Java编程语言中的设计模式,用于封装数据和业务逻辑,它提供了一种标准的方式来创建可重用的、组件化的对象。XML(eXtensible Markup Language)则是一种用于存储和传输数据的标记语言,广泛应用在...
将XSD转换为JavaBean后,开发者可以更轻松地在Java程序中读取、写入和操作XML数据,而不必直接处理XML字符串或DOM节点。 Castor是一个流行的Java库,专门用于对象关系映射(ORM)和XML绑定。在本案例中,Castor提供...
在提供的XML文件`test1.xml`中,可以看到与`TestBean`和`Sub`类对应的结构。JOX会根据这些XML元素和属性,通过反射机制调用Java Bean的setter方法来填充对象。 JOX的优势在于其简洁的API和对JavaBeans规范的良好...
Dm4J可能利用DOM4J的API实现了其核心功能,例如使用`Document`对象表示整个XML文档,使用`SAXReader`进行快速的XML解析,以及使用`Element`对象来操作XML元素。 5. **SAXReader的使用**:SAX(Simple API for XML)...
4. **StAX(Streaming API for XML)**:StAX是一种基于流的XML解析器,提供了一种读取和写入XML的迭代方法。它可以更有效地处理大文件,因为它允许程序员控制解析过程,而不是等待解析器触发事件。StAX的`...
在`xmlAnalysis`文件夹中,可能包含了一个简单的Java程序,演示了如何使用DOM、SAX、StAX和XStream解析XML文件,并展示了XStream如何在JavaBean与XML之间进行转换。你可以运行这些代码,观察输出结果,以加深理解。...
在持久化场景中,JavaBean常作为数据对象,其属性对应数据库表中的字段,getters和setters方法用于读取和设置数据,便于与数据库交互。 **XML** XML(eXtensible Markup Language)是一种标记语言,它定义了规则来...
通过这种方式,我们可以利用Java和XML的特性,结合递归算法,高效地将XML数据映射到JavaBean对象。在实际应用中,我们可能还会考虑错误处理、类型转换、以及更复杂的XML结构。但是,这个简单的例子已经展示了基本...
XML(eXtensible Markup Language)是...总的来说,XML与JavaBean之间的转换是Java开发中常见的任务,涉及到多种技术和库,包括但不限于JAXB、DOM、SAX以及各种辅助工具。理解这些概念和用法对于处理XML数据至关重要。
在Java中,XML与JavaBean之间的转换主要依赖于两个关键的技术:JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)。JAXB是Java平台标准的一部分,它允许开发者将Java对象绑定到XML文档,...
XMLBean是Apache软件基金会开发的一个Java库,它允许开发者通过简单的API来操作XML文档,将XML数据绑定到Java对象上,以及将Java对象序列化为XML。XMLBean提供了高效的、类型安全的方式来处理XML文档,无需深入理解...
在Java开发中,XML(可扩展标记语言)和Bean之间的相互转换是常见的操作,尤其是在处理配置文件、数据持久化或Web服务时。这里的"bean"通常指的是JavaBeans,即符合特定设计模式的Java对象,它们封装了数据并提供了...
1. **解析XML**:Java中使用DOM(文档对象模型)、SAX(简单API for XML)或StAX(流式API for XML)等解析器读取XML文件并将其转化为内存中的对象结构。DOM一次性加载整个XML文档,适合小文件;SAX事件驱动,逐行...