2016-12-05 80 views
-5

我目前正在做我的编程任务。但有一个步骤我不太明白。有7个私有实例变量,我们应该使用equals()方法来比较所有实例变量。 这怎么可能? 这是问题- 如果对象作为参数等于调用该方法的对象,则该类必须重写Object的equals()方法才能返回true,否则返回false。该方法应该比较两个对象的所有实例变量。如何在必须比较7个实例变量时重写equals()方法?

而这些实例变量 -

public class Book implements Usable{ 
//instance variables 


private String b1, b2, b3, b4, b5, b6, b7; 
private boolean bookReference; 
+0

比较7对变量是不可能的? (顺便说一句,如果你包含布尔值,你似乎有八个) – Thilo

回答

0

不知道你的意思......你应该使用字符串的方法相同的7个变量?在这种情况下,这是一个想法...你确实需要检查null。如果您可以使用其他库,则可以使用StringUtils.equal(),因为它也会检查null。你也应该实现hashCode()以及正确性。

@Override 
public boolean equals (Object o) { 

if (o == this) 
    return true; 
if (!(o instanceof Book)) 
    return false; 

Book that = (Book) o; 

if (!this.b1.equals(that.b1)) return false; 
if (!this.b2.equals(that.b2)) return false; 
//Add the rest of the variable 

return true; 
} 
+0

- 你能解释一下上面的代码吗? – ArrchanaMohan

相关问题