在java应用程序中制作可扩展性的映射

时间:2012-10-29 23:28:20

标签: java data-structures hashmap

所以我正在研究这个应用程序并编写这个类来解析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);

所有这些都是示例代码,所以请不要评论缺少构造函数或语法错误:)

提前致谢!

2 个答案:

答案 0 :(得分:0)

Apache Commons有a MultiMap。遗憾的是,我没有在标准库中看到一个。

根据the docs,它们似乎不包括它,因为它并不经常需要。

  

multimap就像Map一样,但它可以将每个键映射到多个值。   Java Collections Framework不包含用于的接口   多图,因为它们并没有全部使用。这是公平的   使用Map的值为List实例的简单问题   多重映射。

至于第二个问题,Java遗憾地缺少一流的功能,所以没有优雅的方法来做到这一点。您可以采取的各种方法包括使用自定义接口,包装类,反射和字节码黑客。

答案 1 :(得分:0)

尝试查看Xstream,从此related question

获取