问题描述
[
解决方案
解决方案二:
string类重写的equals方法要求参数必须为string类型,stringbuffer没有重写equals方法,调用的是object的equals方法
解决方案三:
A不会有编译错误B两个确实有不同的对象类型,但不会报编译错误CStringBuffer有equals(),不会跑出异常DOK的另:如果s1=s1.toString(),就会抛异常
解决方案四:
引用1楼aazbc的回复:
string类重写的equals方法要求参数必须为string类型,stringbuffer没有重写equals方法,调用的是object的equals方法
原来如此,非常感谢
解决方案五:
其实equals是Object的方法。所有类都默认继承Object,而String重写了equals方法。但是StringBuffer没有重写equals,由于继承了Object类,所有其非私有方法也继承过了,执行的时候会调用Object的equals方法。而Object的equals方法就是简单的使用==。publicbooleanequals(Objectobj){return(this==obj);}
所有第5行的s1.equals(s)返回的是false。因为两个对象的地址值不同。
解决方案六:
3楼正解……
解决方案七:
该回复于2014-09-22 08:43:37被版主删除
时间: 2024-12-07 03:41:34