我现在正在使用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();
}
}
答案 0 :(得分:0)
您拥有“没有非静态变量”的消息正在为您提供正确的提示。如果类中存在非静态变量,则仅覆盖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
变量移动到类级别而不是您拥有它们的方法级别。另请注意,某人创建的人是创建者,而不是创建者,我不建议命名您的包{{ 1}},并且我不会为了它而在每个类中导入mainPackage
(如果你正在使用eclipse,只需要执行 Ctrl + Shift < / kbd> + O 来组织你的导入。)
答案 1 :(得分:-1)
要自动添加x="CuIn2Se"
print re.findall(r"(?:C|In|S|Cu|Se)(?=[A-Z0-9]|$|\s)",x)
和equals
方法:
其余的将由eclipse完成。