我是计算机工程专业的学生,我已经在一周前开始Java
。我一直在研究这些天泛型类型,我想与equals和Overriding混合使用,所以我编写了一个程序,它创建了一个名为“Punto”的对象,它具有两个属性(pointX,pointY),以便模拟坐标。我在主类之外编写了一个静态方法,它使用两个“Puntos”作为参数并等于它们。下面是该方法的代码:改写等于方法给出错误
public static boolean iguales(PuntoImpl<Double> p1, PuntoImpl<Double> p2){
return p1.equals(p2);
}
这是我的首要的尝试等于:
@Override
public boolean equals(final Object obj)
{
if (obj == null || !(obj instanceof PuntoImpl))
return false;
PuntoImpl<T> other = (PuntoImpl<T>) obj;
if (other.puntoX != this.puntoX) return false;
if (other.puntoY != this.puntoY) return false;
return true;
}
我试图与协调X和座标Y相同的参数等于两分,但它返回我是假的。你能帮我找到错误吗?
putoX和putoY有哪些类型? – Stultuske
instanceof已经做了一个空检查,如果你这样做,你可以保留nullcheck,但是我会建议通过检查实际类的相等性来替换instanceof检查。 – Stultuske
他们是T类型(通用),但我使用他们作为双 – xFunkyTImes