簡體   English   中英

Java:如果與兩種或更多類型的對象相當,則使用泛型的可比較實現

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM