2012-03-01 62 views

回答

3

編譯器不能夠正確推斷什麼類型的Lists.newArrayList()應該返回。你可以告訴編譯器你想要什麼類型

foo(Lists.<String>newArrayList()); 

爲什麼不能編譯器推斷這個類型?考慮這些方法

<T> T newObject(); 
void bar(Integer i); 
void bar(String s); 

如果你有bar(newObject()),那麼編譯器無法確定應該調用哪個方法。編譯器在查找要調用的方法之前需要知道參數的類型,即使當前只有一種可能的方法。否則,一個新的重載方法會破壞你的代碼。

+0

也許我的問題應該是,爲什麼它不能推斷出類型。 – 2012-03-01 09:17:04

+0

只需添加更多內容。 – 2012-03-01 16:59:07

+0

啊,這很有道理,謝謝 – 2012-03-01 21:45:11

0

因爲ArrayList的實現接口列表