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