2016-12-05 54 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

相關問題