为什么对非字符串对象使用 .equals(Object) 方法?
Why to use .equals(Object) method for non-string objects?
为什么有人会对非字符串对象使用 .equals(Object) 方法而不是“==”?仅仅因为我们可以覆盖 .equals(Object)?
“==”比较两个对象的标识(内存地址)。如果你有两个人对象,他们有相同的名字、相同的年龄、性别......,那么他们应该是同一个人。但是由于你在代码中分别创建了两个人对象,当你使用“==”时,你会断定他们是两个不同的人。但是如果你覆盖 "equals" 那么你可以断定他们是同一个人。
查看 "Effective java"(最好的 Java 书籍之一,如果不是最好的话)。上面有一些不错的东西。
为什么有人会对非字符串对象使用 .equals(Object) 方法而不是“==”?仅仅因为我们可以覆盖 .equals(Object)?
“==”比较两个对象的标识(内存地址)。如果你有两个人对象,他们有相同的名字、相同的年龄、性别......,那么他们应该是同一个人。但是由于你在代码中分别创建了两个人对象,当你使用“==”时,你会断定他们是两个不同的人。但是如果你覆盖 "equals" 那么你可以断定他们是同一个人。
查看 "Effective java"(最好的 Java 书籍之一,如果不是最好的话)。上面有一些不错的东西。