最近在做的一个项目framework中有这样一段类似的代码看的不是很明白String a="";a="abc";if(0!=a.compareto("abc")){
在这里有一些处理;
}我不太明白为什么不用下面这种方法
if(a.equals("abc")){
在这里有一些处理;
}为什么要有compareto 而不用 equals 呢、?
在这里有一些处理;
}我不太明白为什么不用下面这种方法
if(a.equals("abc")){
在这里有一些处理;
}为什么要有compareto 而不用 equals 呢、?
实现或是不实现Comparable接口有什么关系么、?
但是在framework中并没有重写compareto方法,就是调用String的compareto方法,
这个返回值我知道,我就是不明白为什么不用equals,是不是用compareto有什么特别的意义?
难道是架构framework的这个人习惯?
假如a.compareto(b)返回正数,表示a相对于b的位置在b前面(负数则相反),如果返回0,则表示两者是指向同一对象的。当然,string的compareto也是可以通过判断返回值是否为0来判断它们是否同一对象,不过string的compareto里面也是调用了Object的equals方法来实现自己的功能,所以如果只要判断两字符串是同一对象,equals是可以是首选的。
真正的代码也是String类型间的比较吗?不说清楚可就大不相同了
首先谢谢楼上的回答,
根据楼上的回答,我是不是可以得出结论:就在我的这个项目中 用compareto没有什么特别的意义,就是说equals可以替换compareto是吧?有可能是架构的人的习惯问题?
可以这么说,个人习惯而已,除非下面还跟有什么else if ( 0 < a.compareto("abc") ){...} 或者 else if ( 0 > acompareTo ( "abc" ) ) {...}