Vytenis的答案在技術上是正確的,但不是你應該定期做的事情。一個更具擴展性的解決方案是創建一個接口並同時實現兩個對象,讓列表保持兩個對象,而不會失去靜態類型列表通常帶來的安全性和優勢。雖然Java不喜歡類的多重繼承,但實現多個接口並不成問題。
例如,把你的類聲明:
class Object1{
...
}
...
class Object2{
...
}
,並在頂層的地方添加下面的接口聲明 -
public interface SharedType{
...
}
每個對象要存儲,有它實施接口是這樣的:
public class Object1 implements SharedType{
...
}
當你聲明你的列表,聲明它像這樣的:
List<SharedType> mylist = new ArrayList<SharedType>();
或任何類型的列表,你想創建,顯然它並不必須是一個ArrayList
爲內置類型或類此將不工作誰的聲明中,您可以「T改變
使用接口如類型是Java常見的做法,見http://docs.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html,例如
編輯
如果您需要存儲不同的內置類型(如字符串和整數),請按照註釋中的建議,考慮在它們周圍創建一個包裝對象。這有點麻煩,但是你不能輕易改變內建類的聲明,而使用像Object這樣的泛型類型應該是最後的手段,因爲它顛覆了首先要求類型規範的原因。
例如,
interface Wrapper{}
class StringWrapper extends Wrapper{
String s;
public StringWrapper(String s){
this.s = s;
}
}
class IntWrapper extends Wrapper{
String i;
public StringWrapper(Integer i){
this.i = i;
}
}
有人看你的代碼(包括你,以後),現在知道,正是你試圖在你的列表中使用。你同樣可以獲得Java靜態類型的優勢
什麼樣的不同對象?當你檢索它們時,你怎麼知道它是什麼樣的對象? – 2014-10-04 21:52:11
[創建一個具有多種對象類型的數組列表?]可能的重複(http://stackoverflow.com/questions/19602601/create-an-arraylist-with-multiple-object-types) – Boann 2014-10-04 21:55:04