是否有可用于Java的元语言允许您访问对象复杂的层次结构?

时间:2009-05-29 21:00:13

标签: java oop

我正在评估当前项目的复杂对象层次结构模型的一些潜在实现。我想知道是否有一个xpath风格的元语言或类似的东西,这将允许我查询这些对象链接。

此外,我确信有一些非常具体的术语用于我所问的问题 - 我只是不知道。

要求:

  • 必须使用Java(或至少编译为Java字节码)。
  • 对象将通过n个可能的链接以层次结构相互关联。 obj1-> obj2-> obj3-> ...
  • 我们需要能够根据对象属性或其与其他对象的关系查找层次结构中的任何对象。
  • 对象的类型相同。
  • 分层查找应该能够在运行时发生。

我想我可以在这里推出自己的解决方案,但我很好奇是否有比我更聪明的人已经想出了什么。

在看到一些答案后,我想我可能需要更多地澄清我的问题。 具体来说,此工具将用于遍历作为父对象的不同版本的一组对象。

例如:

[对象1 prop1 =“foo”prop2 =“bar”prop3 =“zoop”]

↓继承上述对象↓

[对象2 prop1 =“foo and something”prop2 =“bar”prop3 =“zoop”]

↓继承上述对象↓

[对象3 prop1 =“foo and something”prop2 =“bar”prop3 =“zoop 24”]

3 个答案:

答案 0 :(得分:5)

我相信JXPath应该做你想做的事。

答案 1 :(得分:1)

你是在追问OGNLSPEL还是Unified EL

答案 2 :(得分:0)

好的,首先你必须接受我自己从未真正用过它来构建任何东西的附带条件,但是,jaxen应该能够做到我能记住的最好的东西以及他们主页上的描述支持的是:

Jaxen是一个用Java编写的开源XPath库。它适用于许多不同的对象模型,包括DOM,XOM,dom4j和JDOM。是否也可以编写适用于处理的适配器非XML树,例如编译的Java字节代码或Java bean作为XML,因此您也可以使用XPath查询这些树。“