Comparable 是一个接口,作者是大神Josh Bloch。它的实现类需要实现它的唯一方法compareTo(T o)。当你实现了这个方法的时候,你就给这个类的对象定制了一个自然顺序。我们一般会用Collections或Arrays工具类提供的静态方法来对该对象的集合或数组进行排序。
有一个问题:e.equals(null) 回出现什么情况呢?结果会出现NPE,这里要认识到null不是任何类的实例对象。
一般来讲e1.compareTo(e2)与e1.equals(e2)会保持一种一致性,如果没有这种一致性,需要特别说明。
了解一个接口或类,有必要了解下它会出现什么异常。这个接口有2种异常可能出现。
- NullPointerException
这种情况正如上面提到的一样
2.ClassCastException
当这个方法的参数禁止和将要比较的对象进行比较时抛出。
越是简单的不容易引起人注意的东西,越是隐藏着我们的认知盲区。高楼起于一砖一瓦,长途始于你的一个小脚印。