Java 一定有更好的方法来写这个

Java 一定有更好的方法来写这个,java,Java,坐标类包含4个点对象,表示一组唯一的坐标。每一组坐标都必须是正的。mapCoordinates不能为空,但其他点可以为空,只要它们后面的所有点都为空,并且在此列表中它们前面的所有点都为正:mapCoordinates、tileSetCoordinates、TileCordantes、pixelCoordinates。谢谢,当然有。使用以下方法保持干燥: public static boolean isValidCoordinate(Coordinate point) { Point ma

坐标类包含4个点对象,表示一组唯一的坐标。每一组坐标都必须是正的。mapCoordinates不能为空,但其他点可以为空,只要它们后面的所有点都为空,并且在此列表中它们前面的所有点都为正:mapCoordinates、tileSetCoordinates、TileCordantes、pixelCoordinates。谢谢,当然有。使用以下方法保持干燥:

public static boolean isValidCoordinate(Coordinate point) {
    Point map = point.mapCoordinates, tileSet = point.tileSetCoordinates, tile = point.tileCoordinates, pixel = point.pixelCoordinates;
    if (map != null && map.x >= 0 && map.y >= 0) {
        if (tileSet != null) {
            if (tileSet.x >= 0 && tileSet.y >= 0) {
                if (tile != null) {
                    if (tile.x >= 0 && tile.y >= 0) {
                        if (pixel != null) {
                            if (pixel.x >= 0 && pixel.y >= 0) {
                                return true;
                            }
                            else {
                                return false;
                            }
                        }
                        else {
                            return true;
                        }
                    }
                    else {
                        return false;
                    }
                }
                else {
                    return true;
                }
            }
            else {
                return false;
            }
        }
        else {
            return true;
        }
    }
    else {
        return false;
    }
}

是的,调用类型点坐标和类型坐标点的变量可能会让读者感到困惑。

当然有。使用以下方法保持干燥:

public static boolean isValidCoordinate(Coordinate point) {
    Point map = point.mapCoordinates, tileSet = point.tileSetCoordinates, tile = point.tileCoordinates, pixel = point.pixelCoordinates;
    if (map != null && map.x >= 0 && map.y >= 0) {
        if (tileSet != null) {
            if (tileSet.x >= 0 && tileSet.y >= 0) {
                if (tile != null) {
                    if (tile.x >= 0 && tile.y >= 0) {
                        if (pixel != null) {
                            if (pixel.x >= 0 && pixel.y >= 0) {
                                return true;
                            }
                            else {
                                return false;
                            }
                        }
                        else {
                            return true;
                        }
                    }
                    else {
                        return false;
                    }
                }
                else {
                    return true;
                }
            }
            else {
                return false;
            }
        }
        else {
            return true;
        }
    }
    else {
        return false;
    }
}

是的,调用点坐标类型的变量和点坐标类型的变量可能会让读者感到困惑。

问题名称非常模糊。请将这些if和else分支放入一个逻辑等式。如果在IntelliJ中打开此代码并按Alt+Enter足够的次数,它将为您简化此过程。问题名称非常模糊。请将这些if和else分支放入一个逻辑等式。如果您在IntelliJ中打开此代码并按Alt+Enter足够多次,它将为您简化此过程。+1:使坐标c更清晰,但您必须更改所有用途。i、 e.s/point/c/;啊,在所有这些返回错误中,我错过了返回正确。。。修正。仍然不等同于地图不可能为真。但是仍然是+1。+1:制作坐标c更清晰,但是你必须改变所有的用途。i、 e.s/point/c/;啊,在所有这些返回错误中,我错过了返回正确。。。修正。仍然不等同于地图不可能为真。但仍然是+1。