我正在尝试创建一个比较两个对象的equals方法。问题是,我对这些东西有点新意,所以我会尝试尽可能简单地解释我的目标。
public class A {
...
}
public class B {
private A[] arr = new A[10];
public boolean equals(A[] temp) {
//compare
}
}
假设上面的代码是我所拥有的内容的摘要。现在,假设我有:arr.equals(Obj)
Obj是另一个A []对象。现在在我的equals语句中,我想引用原始的arr
数组,我该怎么做呢?
例如,我想说我想比较长度和临时长度(也就是Obj的长度),我该怎么做?我知道它会像(temp.length == arr.length)那样但是当我通过arr.equals(obj)
传递它时如何访问arr?
编辑:只是澄清一下,假设对象不是简单的数组。因此,例如,A类可以有一个Name,一个Type(两个字符串),也可能有一个Quantity(一个int),所以我不能简单地比较它们就像它们是两个正常数组一样。 / p>
谢谢!
答案 0 :(得分:0)
使用关键字this
,它始终代表您应用该方法的对象(紧靠点之前)。例如:
public boolean equals(A[] temp) {
return this.length == temp.length ;
}
现在,在您的代码的特定情况下,您不是将方法equals
定义为类A
的一部分,而是定义其实例包含B
的类arr
。然后,解决方案将是:
public boolean equals(A[] temp) {
return this.arr.length == temp.length ;
}
答案 1 :(得分:0)
你可以使用java.util.Arrays.equals(Object [] a,Object [] a2)来测试两个指定的Objects数组是否彼此相等
答案 2 :(得分:0)
在class A
public class A {
...
//Override equals method.
}
现在,如果你想比较2个class A
数组,你只需使用java.utils.Arrays.equals(A a1[], A a2[]);
你必须覆盖class A
中的equals方法.coz java.utils.Arrays.equals内部使用A类等于。
这是example,请仔细阅读。