如何聲明mixedList
與這種快照的泛型而不修改其餘的代碼?快速遺留給泛型轉換問題
List mixedList = new ArrayList();
if(flagA) {
ClassA a = new ClassA(); //comes from elsewhere
mixedList.add(a)
} else {
List<ClassB> bList = new ArrayList<ClassB>(); //comes from elsewhere
mixedList = bList; //error
}
我可以這樣做:
List<Object> mixedList = new ArrayList<Object>();
if(flagA) {
...
} else {
...
mixedList.addAll(bList);
}
但有沒有辦法避免變化的代碼?
我不確定你的意思,如果你將它聲明爲Object,爲什麼你需要更改其餘的代碼? –
@Oscar:因爲'bList'不能分配給'mixedList'。 –
很抱歉標記了線路錯誤。 – serg