考慮下面的代碼:我如何使用泛型類型來構造集合?
interface IParam {}
class Parameter implements IParam {}
void foo(Collection<? extends IParam> params) {
SortedSet<? extends IParam> sortedParams;
if (params instanceof SortedSet)
sortedParams = (SortedSet<? extends IParam>) params;
else
sortedParams = new TreeSet<IParam>(params);
}
我得到的是一些參數的集合。
我需要的是一個SortedSet的參數。
如果給定的集合已經是SortedSet,我想使用它。
否則,我將創建一個只包含給定集合的內容的新TreeSet。
但是,此代碼不會編譯關於未經檢查的轉換的警告。
有沒有什麼方法可以實現我想要的,而不會抑制警告?
謝謝你!做到了! –
stmoebius
2012-02-03 11:15:13