首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:如果与两种或两种以上类型的对象相比较,则使用泛型实现。

Java:如果与两种或两种以上类型的对象相比较,则使用泛型实现。
EN

Stack Overflow用户
提问于 2012-04-17 12:21:26
回答 1查看 99关注 0票数 0

我有一个类TimeParameter,它实际上不是Date的子类,而是由日期和其他东西组成的。在我的上下文中,日期或相当频繁地表示为双打(朱利安日期)。通常,TimeParameter不是TimeParameter,而是日期、双甚至字符串(用预定义格式编码的日期)。最初,TimeParameter实现了可比较的接口,在compareTo(对象o)中,o被进一步用于

代码语言:javascript
复制
if ( o instanceof Date)
    return compareToDate((Date)o);
else if ( o instanceof Double)
    return compareToDouble((Double)o);
else ...

使用泛型执行此操作的一种可能性是使用助手类,如

代码语言:javascript
复制
CompareHelper(Double d) {
    jd = d;
    ...
}
CompareHelper(Date d) {
    jd = getJulianDate(d);
    ...
}

然后,使TimeParameter实现可比较,并进行同样的操作。

但我的问题是,在没有助手类的泛型中是否存在这样的方法,因为调用实例并不总是能够知道它应该将Date/Double包装到一个助手实例中。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2012-04-17 12:28:01

通常,所有类型都有一个它们都实现的公共接口。与许多没有共同之处的事物相比是没有意义的。

顺便说一句: a.compareTo(b) == -b.compareTo(a)意味着你不能对你要做的类型变得太复杂。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10191156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档