【发布时间】:2016-05-09 00:06:57
【问题描述】:
换句话说,如果我有两个变量:
String s;
String t;
这样s == t,那么s.equals(t)是否保证返回true?
我认为答案显然是肯定的,但这是我的教授为入门编程课程期末考试提供的练习考试,他说不是。想法?
我意识到它们可能为 null,因此在引用上是相等的,但您无法对它们调用 .equals。
【问题讨论】:
-
如果他们是
null? -
考虑两个变量的值是否都是
null。我不知道你教授是不是这个意思,但如果不是,他就错了。 Straight from the source. -
如果问题不是专门针对
String或null的可能性,那么答案可能理论上仍然是否定的。当a == b为真时,a.equals(b)不能绝对保证为真,因为equals()方法的实现者可能搞砸了。不是您的教授正在寻找的答案,而只是想把它放在那里。 ;-)
标签: java string reference equality