如果我有這樣的方法(爲簡單起見,假設整數):如何返回正確的列表類型?
public static List<Integer> doSomething(List<Integer> list) {
// logic here
}
,我需要爲我的處理在內部創建一個新的列表,我將創建並以某種方式填充,並返回給調用者,我怎麼能這樣做,因爲我不知道調用者通過什麼類型的列表?
我不想返回不同類型的List
什麼呼叫者通過。
例如如果來電者通過了LinkedList
而我不要想要返回ArrayList
。
如何最好地接近這個問題?
爲什麼您確切地需要返回相同類型的東西?是不是人們會用'ArrayList a = doSomething(a);'來調用它?在這種情況下它會自動被強制轉換? –
kba
2012-01-28 16:07:15
爲什麼他們會用'ArrayList a ='調用它?其他回答已經投訴的朋友/指出不應該有一個'ArrayList'在任何地方浮動(即使用接口) – Cratylus 2012-01-28 16:12:02
@KristianAntonsen這沒有意義;如果我傳遞一個'LinkedList',我不能隨機將返回值轉換爲任意實現並期望它可以工作。 – 2012-01-28 16:12:38