![](/img/trans.png)
[英]Getting NPE from .equals() method of String class. How to debug this
[英]I have 2 Same value object of String Buffer Class. String equals() method Showing False result Why?
StringBuffer str1=new StringBuffer("hello1");
StringBuffer str2=new StringBuffer("hello1");
System.out.println(str1.equals(str2));
它将显示错误结果,为什么?
StringBuffer equals()
方法不会被覆盖以检查内容。 它使用默认的“浅等于”比较它从java.lang.Object.
继承的引用java.lang.Object.
所以
StringBuffer str1=new StringBuffer("hello1");
StringBuffer str2=new StringBuffer("hello1");
System.out.println(str1.equals(str2));
为比较基准,这就是为什么你得到假
在StringBuffer
类中没有equals
覆盖。 因此,它继承了Object
类的定义。 从Java API我们知道它的行为:
类Object的equals方法在对象上实现了最有区别的对等关系。 也就是说,对于任何非空参考值x和y,当且仅当x和y引用同一个对象(x == y的值为true)时,此方法才返回true。
您有两个不同的对象,因此在这种情况下equals
返回false
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.