为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用从Java中的方法调用的对象?

如何使用从Java中的方法调用的对象?

犯罪嫌疑人X 2022-09-14 16:54:51
我试图弄清楚在方法中调用对象的语法是什么。伪代码:    boolean check(Object someObject) {        return someObject == theOtherObject;    }   public static void main(String args[]) {    someClass one = new someClass();    someClass two = new someClass();    one.check(two);}因此,该方法应该检查两个对象是否相等,但是我如何指定另一个对象(应该是)?checktheOtherObjectone提前致谢!
查看完整描述

3 回答

?
达令说

TA贡献1821条经验 获得超6个赞

一个字回答:this


boolean check(Object someObject) {

    return someObject == this;

}

这将仅测试对象标识。您应该覆盖等于并使用它。


if (one.equals(two)) {

    // ...

}


查看完整回答
反对 回复 2022-09-14
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您可以在内部使用该方法并检查boolean check(Object o)SomeClass

boolean check(Object o) {
    this == (SomeClass) o;
}

仅当两个引用变量都指向同一对象时,这才有效。此外,检查两个对象是否有意义相等的正确方法是使用继承的相等和哈希码方法。

重写和方法。equalshashCode

为什么我需要重写Java中的等号和哈希码方法?

https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-


查看完整回答
反对 回复 2022-09-14
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

所以你所要求的实际上已经在java.lang.Objects类中有一个命令来与对象进行比较。

    one.equals(two)

这样做的比较称为浅层比较。因此,如果这是您要做的事情,那么这将起作用。作为参考,geeksforgeeks.org 定义的浅层比较的定义是


浅层比较:equals方法的默认实现是在Java.lang.Object类中定义的,它只是检查两个对象引用(例如x和y)是否引用同一个对象。即它检查 x == y。由于 Object 类没有定义其状态的数据成员,因此也称为浅层比较。


如果你想做一个更复杂的比较,你最好的选择是实际覆盖一个类文件中的 equals 命令


本文将是开始了解有关此主题的更多信息的好地方。https://www.geeksforgeeks.org/equals-hashcode-methods-java/


查看完整回答
反对 回复 2022-09-14
  • 3 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信