永发信息网

为什么compareTo()的参数要是java.lang.Object类型

答案:3  悬赏:70  手机版
解决时间 2021-01-28 15:10
java初学中,用到一个代码质量检查工具中有一个检测器是这样定义的:
Abstract class defines covariant compareTo() method

This class defines a covariant version of compareTo(). To correctly override the compareTo() method in the Comparable interface, the parameter of compareTo() must have type java.lang.Object.

请问这个检测器是什么意思?为何要这样要求?

该工具是为了找出代码中潜在的缺陷,而Abstract class defines covariant compareTo() method是它的一个检测器,属于“不好的实践”类型。所以我理解是不是说Abstract class中最好不要定义可变的compareTo()方法?那么怎样的是可变的怎样的是不可变的?为什么不要定义可变的compareTo()方法?
最佳答案
因为这是一个通用的接口,所以定义方法时是比较当前对象与待比较对象是否相等,由于该通用接口不可能知道你要比较的具体对象类型,所以这里需要的一个参数类型是Object。
在java5.0有泛型之后,你编写代码的时候可以在实现该接口时指定要比较的具体的类型。
-------------------------------------
你是怎么把它理解成不对的。。。
这句英文的意思是该类定义了一个通用的、可变的或者说是可扩展的compareTo()方法。子类想要正确地实现这个接口,就必须覆盖compareTo方法,并且传递的参数必须是Object。
-------------------------------------
你把你报错的那段代码放上来看看。
这个可变的应该就是参数定义上,如果用了泛型之后应该就算是不可变的了。
全部回答

http://www.javaeye.com/topic/483469

你去看看 应该就明白了 

说的比较好!

查api文档你就知道了 所有类都把java.lang.object作为父类 换句话说 java中的所有类都直接或间接地继承自object类
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
如果酒吧地址好找么,我有些事要过去
塑钢铝合金地址有知道的么?有点事想过去
跬行的意思是什么啊?知道的请说下!
大马驾照在大马可以驾驶新加坡车吗?
大学挂科影不影响拿奖学金啊。
90年2月21日出生的五行属什么
【谢晋导演】下列不是谢晋导演的作品的是()。
美国杜克大学有超心理学吗?? 以及美国、英
中国工商银行24小时自助银行(黄城东莱街260号
怎么给QQ好友批量传送照片?
动感地址好找么,我有些事要过去
有家公司来我学校开招聘会,到了时间,没人去
新世纪窗帘(后榆路)地址在什么地方,我要处理
路由器宽带密码查看器mac怎么用
还路的意思是什么啊?知道的请说下!
推荐资讯
1957年7月31日,《浙南大众报》发文说: “‘
宏儒茶客地址在什么地方,想过去办事
老外常说的“take a powder”是什么意思
太疯狂无法相信的av名字叫什么
歌词不如敞开拉尽情的飞,我随着风儿沉醉
我国法定的公司形式有两种,它们是①有限责任
青山灯饰城地址有知道的么?有点事想过去
有一首歌叫 什么彩虹的
雪花膏的意思是什么啊?知道的请说下!
《医疗事故处理条例》规定,对70周岁以上的患
一首纪念周总理的散文诗
中国信合(新华街储蓄所)(建设路与胜利路交叉
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?