2012-10-29 38 views
1

因此,我正在研究此應用程序並編寫此類來解析xml。我創建了一個代表我的XML文件的類,並且我想爲它繪製一些東西,稍後使用地圖擴展解析器的功能。下面是一個例子:在java應用程序中製作可擴展性的地圖

我知道在每個文件中都有一個DATE,在我解析它的當前版本的XML文件中是<date>dateValue</date>所以我想將我的通用字符串「DATE」映射到「date」,所以我可以簡單地引用一個數據結構(地圖),並獲取鍵值(在本例中爲「DATE」)的值(「日期」)。 如果這就是我想要做的,我只是使用hashmap。不過,我已經添加了更復雜的東西,我有一個類來表示我拉出XML的數據,說:

public class myXML{ 
    String date; 
    setDate(String input){ 
     this.date = input; 
    } 
} 

所以我也想弄清楚連接東西的一種方式其他值與「日期」,「日期」和現在的setDate(「價值」)。所以首先有一種將2個值鏈接到一個鍵的好方法? 其次是有一個好的方法來映射到一個功能,然後使用它?如

function = map.getFunctionValue("DATE"); 
myXML.function(someValue); 

所有這一切都是示例代碼,所以請不要在缺乏構造函數或語法錯誤:)

由於時間提前發表評論!

+0

得到它你有沒有調查自帶的Java JDK的XML解析功能('javax.xml。*')?你可能會重新發明輪子。 –

+0

我不明白。也許你可以使用一個容器對象的散列表?它可以有幾個成員和所有你想要的方法。只要小心執行equals和hashcode方法。 –

回答

0

Apache Commons有a MultiMap。不幸的是,我在標準庫中看不到一個。

根據the docs,它似乎沒有包含它,因爲它並不經常需要。

multimap就像一個Map,但它可以將每個鍵映射到多個值。 Java集合框架不包含用於 多圖的接口,因爲它們沒有被普遍使用。這是一個簡單的事情,使用一個Map的值爲List實例的 multimap。

至於第二個問題,Java可惜缺乏一流的功能,所以沒有優雅的方式來做到這一點。您可以採取的各種方法包括使用自定義界面,包裝類,反射和字節碼黑客。