在下面的例子相比较,我期待equals()
返回true
:对象使用的equals()的字符串方法
public class flower {
String flower;
public flower (String flower) {
this.flower = flower;
}
public static void main(String[] args) {
flower one = new flower("Flower");
boolean isSame = false;
if(one.equals("Flower")) {
isSame = true;
}
System.out.print(isSame);
}
}
但是,结果我得到的是false
...是因为我将某个对象与String
进行比较?我读了equals()
方法,据说比较了String
和Objects
。为什么我得到的结果为false
虽然它们是一样的?
看看在Object类中定义的equals()的实现。 – 2015-05-27 14:35:01
他们**不是**相同。他们甚至不是同一个班级。其中一个属性的值与另一个值相等(但不相同)。这远不足以满足'equals()'。 –
这是我的车。 (想象一下欧宝Corsa。)这是一辆倍耐力PT-1004轮胎。 (想象一下倍耐力PT-1004轮胎。)尽管我的车实际上穿着倍耐力PT-1004轮胎,但我的汽车与轮胎绝对不是同等的***。即使你偷了我的3个轮胎并且只剩下一个轮胎,它也不会相同。它不会。永远。等于。对轮胎。 –