gpt4 book ai didi

java - 如何在重写的方法中调用原始方法

转载 作者:行者123 更新时间:2023-11-29 05:12:01 24 4
gpt4 key购买 nike

class Object{

String x;
int y;

Object (String a, int b){
this.x = a;
this.y = b;

@Override
boolean equals(Object obj){

return (this.x.equals(obj.x)) && this.y == obj.y);
}
}

在这里,我试图编写一个覆盖 equals() 的方法,以便同时使两个值(一个字符串和一个整数)相等。为了测试字符串相等性,我使用了我覆盖的原始 equals() 方法。

我可以做到没有错误吗?或者我不能在覆盖它的方法中使用原始的 equals() 方法吗?有没有更好的方法来实现这一目标?

我不太能在网上找到这个问题的答案,但这可能是因为我不知道这种情况的技术用语。

谢谢

最佳答案

我认为问题在于您没有正确覆盖 Object.equals() 方法。如果您试图检查 String 和 int 是否相等以使您的对象相等,听起来您想要一个新对象来表示 String 和 int 一起表示的任何内容:

class MyObj {
private String str;
private int num;
...
}

(使用适当的 getter 和 setter 方法)

然后你可以像这样覆盖 MyObj.equals() :

@Override
boolean equals(MyObj that){
/* First check for null and all that stuff */
...
return this.str.equals(that.getStr()) && this.num == that.getNum();
}

关于java - 如何在重写的方法中调用原始方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28100931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com