1,因为String的length()方法返回的是int类型,而int类型没有compareTo()比较方法,若要简写成LZ红色字体部分的格式只能通过int类型的包装器类Integer的对象,可以查看API,Integer是实现了Comparable<Integer>接口的,当然也就重写了compareTo方法。
2,此处写new的原因也就是通过创建对象调用方法
3,调用compareTo方法后返回值类型为int
从此处看出LZ的代码并不完全,若用new Integer()的方式看不懂,我建议您用以下方式写:- public int compare(Object o1,Object o2){
- String s1=(String)o1;
- String s2=(String)o2;
- if(s1.length()>s2.length()){
- return 1;
- }
- if(s1.length()==s2.length()){
- return s1.compareTo(s2);
- }
- return -1;
- }
复制代码 |