[英]Java: Comparable implementation with Generics if comparable to two or more type of Objects
我有一個類TimeParameter,它實際上不是Date的子類,但是由Date和其他東西組成。 在我的背景下,日期或經常表示為雙打(朱利安日期)。 通常,TimeParameter不與TimeParameter進行比較,而是與Date,Double或甚至String(使用預定義格式編碼的日期)進行比較。 最初,TimeParameter實現了Comparable接口,而在compareTo(Object o)中,o用於進一步分叉
if ( o instanceof Date)
return compareToDate((Date)o);
else if ( o instanceof Double)
return compareToDouble((Double)o);
else ...
使用泛型的一種可能性是使用類似的輔助類
CompareHelper(Double d) {
jd = d;
...
}
CompareHelper(Date d) {
jd = getJulianDate(d);
...
}
然后,讓TimeParameter實現Comparable <CompareHelper>並繼續進行。
但我的問題是,是否有一種方法可以在沒有輔助類的泛型中執行此操作,因為調用實例並不總是能夠知道它應該將Date / Double包裝到幫助器實例中。
提前致謝
通常,所有類型都具有它們都實現的通用接口。 與許多沒有任何共同點的東西相比,沒有任何意義。
順便說一下:a.compareTo(b)== -b.compareTa(a)意味着你不能對你所能比擬的類型過於復雜。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.