所以我正在研究这个应用程序并编写这个类来解析xml。我创建了一个代表我的xml文件的类,我想为它映射一些东西,然后使用map来扩展我的解析器的功能。下面是一个例子:
我知道每个文件都有一个DATE,在当前版本的XML文件中我正在解析它是<date>dateValue</date>
所以我想将我的通用字符串“DATE”映射到“date”所以我可以简单地引用一个数据结构(map)并获得一个键值(在这种情况下为“DATE”)的值(“date”)。
如果这就是我想做的事情,我只使用一个hashmap。但是我添加了一些更复杂的东西,我有一个类来表示我从xml中提取的数据,说:
public class myXML{
String date;
setDate(String input){
this.date = input;
}
}
所以我也想找出一种方法,用“DATE”,“date”和现在的setDate(“value”)来附加其他东西。 那么首先有一种将2个值链接到一个键的好方法吗? 第二个是有一个很好的方法来映射到一个函数,然后使用它?如
function = map.getFunctionValue("DATE");
myXML.function(someValue);
所有这些都是示例代码,所以请不要评论缺少构造函数或语法错误:)
提前致谢!
答案 0 :(得分:0)
Apache Commons有a MultiMap。遗憾的是,我没有在标准库中看到一个。
根据the docs,它们似乎不包括它,因为它并不经常需要。
multimap就像Map一样,但它可以将每个键映射到多个值。 Java Collections Framework不包含用于的接口 多图,因为它们并没有全部使用。这是公平的 使用Map的值为List实例的简单问题 多重映射。
至于第二个问题,Java遗憾地缺少一流的功能,所以没有优雅的方法来做到这一点。您可以采取的各种方法包括使用自定义接口,包装类,反射和字节码黑客。
答案 1 :(得分:0)
尝试查看Xstream,从此related question
获取