【问题标题】:dynamically addressing a classes variables动态寻址类变量
【发布时间】:2011-05-24 02:27:57
【问题描述】:

我不太确定我能做到这一点,但我愿意。我正在读取一个 XML 文件,并且在某些节点上,有很多属性最终存储在对象内部的变量中。目前,我解析节点,获取属性名称,然后通过大量的 if/then/else 来将其存储在正确的对象变量中。所有这些都可以正常工作。

我希望能够做的更动态一点,有一个映射机制,将属性名称映射到对象中的变量名称。
因此,例如,如果我有一个 node ,我可以将数据映射到我的对象中的 object.city 和 object.addr ,而不必为我捕获的每个属性都硬编码 if/then。我有几个节点/对象我这样做,虽然它不会经常改变,但我认为像我描述的那样映射它会更干净。

类似的东西在 Java 中是否可行?

非常感谢。

【问题讨论】:

    标签: java xml class variables dynamic


    【解决方案1】:

    是的,您可以使用Reflection API 访问类的字段和方法。但如果您的目标只是读取 XML 文件,请不要重新发明轮子 - 只需使用现有的库,例如 JAXB

    【讨论】:

      【解决方案2】:

      有许多 POJO-XML 映射实用程序。 Apache 的 XML bean 和 Sun 的 JAXB 是两种常见的。

      这是一个 XMLBeans 教程:http://xmlbeans.apache.org/documentation/tutorial_getstarted.html

      【讨论】:

      • 注意:JAXB 实际上是一个标准(JSR-222),具有多种实现:Metro JAXB(参考实现)、EclipseLink JAXB (MOXy)、Apache JaxMe 等。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 2013-09-19
      相关资源
      最近更新 更多