[英]Can't auto-generate an equals method with eclipse
我現在使用eclipse編寫Java程序,但是我需要重寫equals
方法,這樣它將使用實際數據,而不是名稱或id。 當我嘗試以自己知道的方式自動生成它時,它表示我沒有非靜態變量。 我添加了一些,但仍然無法正常工作。 我對Java不夠了解,無法自己做,但我了解得最多,我很可能會理解您在說什么。 (我還沒有完成我的代碼,我才剛開始。整數x
和y
只是試圖使其工作。)
package mainPackage;
import java.util.*;
public class Main extends Creater {
public static void main(String[] args) {
int x = 0;
int y = 0;
thatInput = Inputs.ask();
Loops.CreateArray();
}
}
消息“沒有非靜態變量”正在為您提供正確的提示。 僅當類中包含非靜態變量時,才重寫hashCode
和equals
方法才有意義。 因此,如果將示例更改為以下示例,則可以實現這些方法(或通過Eclipse為您自動生成它們):
public class Main extends Creater {
private int x = 0;
private int y = 0;
public static void main(String[] args) {
// other code
}
@Override
public boolean equals(Object obj) {
// ... your equals code goes here
}
@Override
public int hashCode() {
// ... your hashCode, er, code goes here
}
// ... other code that does wonderful things with x and y
}
請注意,我如何將x
和y
變量移到類級別而不是您擁有它們的方法級別。 請注意誰或什么, 創造某人是一個創造者 ,而不是一個創世 ,我不會建議命名你包mainPackage
,而且我也不會去進口java.util.*
在每個班只為求(如果您使用的是eclipse,則只需按Ctrl + Shift + O即可組織導入)。
另請參見覆蓋這些方法時要考慮的問題 。
自動添加equals
和hashCode
方法:
其余的將通過蝕來完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.