从XML到Java代码的数据绑定之三 从文本到字节码 - 编程入门网
r i = attributes.iterator(); i.hasNext(); ) {
Attribute att = (Attribute)i.next();
// Only want attributes for this namespace
if ((!att.getNamespace().equals(ns)) &&
(!att.getNamespace().equals(Namespace.NO_NAMESPACE))) {
continue;
}
// Determine method to call
String methodName = new StringBuffer()
.append("set")
.append(BindingUtils.initialCaps(att.getName()))
.toString();
// Find the method to call, and its parameter type
for (int j=0; j
找到了根元素的属性,并确定了每个属性的适用方法。然后,就是处理实际的 java.lang.reflect.Method 对象。XML 属性的值已确定,并作为调用的参数传送到方法。但是,需要解决一个映射问题;XML 文档中的所有数据都作为 String 抽取,但传递时必须是适当的 Java 类型。清单 4 将一个方法添加到 DataMapping 辅助类中,以满足转换的需要。 清单 4 将字符串映射成 Java 特定的类型
在清单 4 中,值作为 String 传入,并且还传入了要转换的类和处理类型转换的方法。当然,这里包含的数据类型不多。可以添加更多类型(如 java.util.Date )来支持更复杂的数据映射。 一旦数据转换成适当的类型,可以使用反射调用 accessor 方法,并可传入已转换的数据类型。这就使 XML 文档中的所有属性及其值可以在作为结果的 Java 实例中以方法变量和的值存储。 从XML到Java代码的数据绑定之三 从文本到字节码(3)时间:2010-12-02递归对象树 所剩下的将是生成嵌套对象(如 WebServiceConfiguration 对象中的 PortType 对象)。最后,将嵌套对象传递给 accessor 方法,然后将填充了成员变量值和对象引用的顶级对象返回给调用程序。这种方式生成了一棵对象树,其中主对象是该树的主干。每个嵌套对象都形成了本身必须填充的树的分枝。这些分枝可以有它们自己的分枝,带有本身必须填充的的嵌套对象。由此可知,这棵树可能变得非常复杂。 在如果同一操作必须发生不知多少次的情况下,递归几乎总是完成操作的最佳选择。如果是 unma |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |