毕老师的写法
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
是面向对象的比较通用的方法吧,对于实现了comparable接口的类,都可以这么写的,例如 String类也可以这么做
而楼主的
return s1.getAge()-s2.getAge();
是因为getAge()方法返回值类型是int类型的,而我们在实现compare或者comparTo方法时,int compareTo(T o) 方法的返回值类型也是int类型的,所以可以直接return s1.getAge()-s2.getAge(),但若是对于其他实现了comparable接口的类类型的变量,直接用减号就有点儿说不通了
小结一下:
return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge())); 面向对象,调用compareTo方法比较通用
而return s1.getAge()-s2.getAge(); 应该是一些返回值类型为int的特例吧 |