0
的通用比較我有一個容器對象是這樣的:更好的方式來寫容器
class Container<V> {
V value;
}
,並希望爲它編寫一個Comparator
應該比較value
只有當它的可比性。
我能想出的最好的是這樣的:
class ValueComparator<V extends Comparable<V>, C extends Container<V>>
implements Comparator<C> {
@Override
public int compare(C o1, C o2) {
return o1.value.compareTo(o2.value);
}
}
可以以這種方式使用:
Container<String> x1, x2;
new ValueComparator<String,Container<String>>().compare(x1, x2);
^^^^^^ ?
的問題是:有沒有爲了實現這更好的辦法擺脫冗餘類型信息,以便我可以編寫:
new ValueComparator<Container<String>>().compare(x1, x2);
將你想要的行爲是如果V是沒有可比性? – Bohemian
不要編譯。 – Scheintod