Java Can';t使用eclipse自动生成equals方法

Java Can';t使用eclipse自动生成equals方法,java,eclipse,equals,Java,Eclipse,Equals,我现在正在使用eclipse编写Java程序,但我需要重写equals方法,这样它将获取实际数据,而不是名称或id。当我尝试以我知道的方式自动生成它时,它会说我没有非静态变量。我添加了一些,但仍然不起作用。我对Java的了解不足以让我自己做这件事,但我知道的足够多,我很可能会理解你们所说的。(我还没有完成我的代码,我刚刚开始。整数x和y只是为了让它工作。) 要自动添加equals和hashCode方法: 菜单->源->生成hashCode()和equals() 选择要成为hashCode()和e

我现在正在使用eclipse编写Java程序,但我需要重写
equals
方法,这样它将获取实际数据,而不是名称或id。当我尝试以我知道的方式自动生成它时,它会说我没有非静态变量。我添加了一些,但仍然不起作用。我对Java的了解不足以让我自己做这件事,但我知道的足够多,我很可能会理解你们所说的。(我还没有完成我的代码,我刚刚开始。整数
x
y
只是为了让它工作。)


要自动添加
equals
hashCode
方法:

  • 菜单->源->生成hashCode()和equals()
  • 选择要成为hashCode()和equals()一部分的字段
  • 单击“确定”
  • 其余部分将由eclipse完成。

    您没有“非静态变量”的消息给了您正确的提示。仅当类中存在非静态变量时,重写
    hashCode
    equals
    方法才有意义。因此,如果您将示例更改为以下内容,则可以实现这些方法(或者由eclipse自动生成):

    请注意,我如何将
    x
    y
    变量移动到类级别,而不是方法级别。还请注意,创建的人或事物是创建者,而不是创建者,我不建议将您的包命名为
    mainPackage
    ,我也不会为了它而在每个类中导入
    java.util.
    (如果您使用eclipse,只需按Ctrl+Shift+O来组织导入)


    另请参阅。

    OP说他知道如何自动生成这些方法。。。问题不在于如何去做,而是因为他没有任何变量来建立这些方法。下级选民能解释一下他们对我的答案有什么看法吗?……当有人无能为力时,或者因为生活中的其他事情而心烦意乱,或者当他们希望左键点击时,会有如此大的力量,他们只是开始在SOF上投票,大多数时候这些投票都没有意义。
    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();
        }
    }
    
    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
    }