[英]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.