Java中Polygon比较的equals方法返回结果异常问题
问题:Polygon类equals方法返回结果不符合预期
我需要实现输入Polygon对象与默认Polygon类属性值的比较,其他数学计算均正常且能正常打印,但equals方法的boolean返回结果始终不符合预期。我的判定逻辑是:当默认多边形的边数、边长与输入多边形的边数、边长均匹配(边长差值小于指定epsilon)时,判定两者相等。
实现equals逻辑的代码:
public boolean equals(Polygon polygon){ boolean areEqual = false; double episilon = 0.0000001d; double difference = Math.abs((DEFAULT_SIDE_LENGTH) - length); if ((difference < episilon) && (DEFAULT_SIDE_COUNT == sides)) areEqual = true; return areEqual; }
打印结果的代码:
public static void printIfEqual(Polygon poly1, Polygon poly2) { System.out.println("Before checking equals(), print polygons"); System.out.println("poly1: " + poly1); System.out.println("poly2: " + poly2); if (poly1.equals(poly2)) System.out.println("Polygons are equal."); else System.out.println("Polygons are NOT equal."); }
当前代码运行结果与预期结果不符(仅boolean返回值存在差异),已尝试调试但未解决问题,附上当前结果图与预期结果图。
内容的提问来源于stack exchange,提问作者GrasshopperAtBest
相关产品推荐
相关产品推荐

