黑马程序员技术交流社区

标题: 泛型中的一个小插曲问题 [打印本页]

作者: 王林涛    时间: 2013-6-9 19:54
标题: 泛型中的一个小插曲问题
本帖最后由 王林涛 于 2013-6-10 23:09 编辑

class StringLengthComparator implements Comparator
{
        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 0;
                */


                //封装成数字对象,然后判断主要条件,长度
                int num = new Integer(s1.length()).compareTo(new Integer(s2.length())) //这个地方为什么可以封装成对象?而且还是直接new
                //判断次要条件字符串内容是否相同.
                if(num == 0)
                        return s1.compareTo(s2);
                return num;
        }
}


作者: 孙金鑫    时间: 2013-6-9 20:20
int compareTo(T o)比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

Integer(int value)
          构造一个新分配的 Integer 对象,它表示指定的 int 值.
作者: 不破大地    时间: 2013-6-10 19:08
应该是数据类型的转换,向上转型,将基本数据类型转换成引用数据类型
intl类型转换成引用数据类型后,在调用引用数据Integer的compareTo方法
作者: 尹丽峰    时间: 2013-6-10 19:32
Integer是一个包装类,直接new相当与创建Intger对象, 和Integer in = new Integer(s2.length())是一样的道理
作者: j816326    时间: 2013-6-10 21:11
Integer可以看成是一个装饰类,参考装饰设计模式。传递的是一个接口或者子类的对象。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2