的返回類型我返回一個基類的集合的方法:有沒有辦法迫使Arrays.asList
import java.util.*;
class Base { }
class Derived extends Base { }
Collection<Base> getCollection()
{
return Arrays.asList(new Derived(),
new Derived());
}
這無法編譯,爲Arrays.asList
返回類型(List<Derived>
)不不匹配方法的返回類型(Collection<Base>
)。我明白爲什麼會發生這種情況:由於泛型類型是不同的,因此這兩個類不會被繼承關聯。
有許多方法可以修改編譯器錯誤,從將方法的返回類型更改爲不使用Arrays.asList將其中一個派生對象轉換爲Base。
有沒有辦法告訴編譯器在解析Arrays.asList調用的泛型類型時使用不同但兼容的類型? (我一直在嘗試使用此模式,運行到這個問題,所以如果有一種方法,使其工作,我想知道這一點。)
我還以爲你可以不喜歡
Collection<Base> getCollection()
{
return Arrays.asList<Base>(new Derived(),
new Derived());
}
當我嘗試編譯那個(java 6)時,編譯器會抱怨它在逗號處期待'''。
陣列。 asList –
2013-04-03 22:32:16