2011-07-07 41 views
2

我正在考慮用Java來實現一個'容器',我可以存儲任何類型的對象,Integer,ArrayList等。當從容器中獲取對象時,我將投射每個結果是這樣的:如何創建任何對象的容器

public void foo(int i) { 
    try { 
     Integer result = (Integer) container.get(i); 
     // do something with result 
} 
    catch(...){..} 

    try { 
     Command result = (Command) container.get(i); 
     // do something with result 
    } 
    catch(...){..} 

    try { 
     ArrayList<MyClass> result = (ArrayList<MyClass>) container.get(i); 
     // do something with result 
    } 
    catch(...){..} 
} 
+1

爲什麼?你有問題嗎? –

+2

這與語言具有泛型之前的Java集合完全相同。事實上,如果您忽略編譯器警告,或者只是創建一個'Collection ' – mkb

回答

6

如果它存儲混合的任何類型的對象,請使用Object作爲存儲類。所有類都從Object繼承,而原語使用它們各自的包裝類。或者只是使用已存在的bazillion容器類之一。

ArrayList <Object> container; 

而不是使用你的try語句,想想instanceof

0

你的問題是什麼?

但除此之外。你爲什麼試圖重新發明輪子?任何Map集合類都將完全按照您的需要進行操作。檢查HashMap。

+0

我還沒有嘗試過,您仍然可以在Java 5或更高版本中執行此操作。 Hyperboreus已經回答了它。乾杯。 – xybrek