问题1:
书中是这样讲的:在JAVA中,如果想用Arrays类中的sort方法对对象数组进行排序,则对象所属的类必须实现Comparable接口。
但是我有点不明白,为什么不能在类中直接提供一个compareTo方法,而必须实现Comparable接口呢???
问题2:
《JAVA核心技术》卷一P206讲道:“有人认为,将Arrays类中的sort方法定义为接受一个Comparable[]数组就可以在使用元素类型没有实现Comparable接口的数组作为参数调用sort方法时,由编译器给出错误报告。但事实并非如此。在这种情况下,sort方法可以接收一个Object[]数组,并对其进行笨拙的类型转换:
//from the standard library--not recommended
if(((Comparable)a[i]).compareTo(a[j])>0)
{
//rearrange a[i] and a[j]
..........
}
如果a[i]不属于实现了Comparable接口的类,那么虚拟机就会抛出一个异常。”
上面的内容有点没看懂,我觉得将Arrays类中的sort方法定义为接受一个Comparable[]数组作为参数很好啊,为什么不行呢??????
请各位高手指教~