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;
}
}
坐标类包含4个Point对象,表示一组唯一的坐标。每组坐标都需要为正。 mapCoordinates不能为null,但是其他Points可以,只要它们之后的所有内容都为null,并且它们之前的所有内容都在此列表中为正:mapCoordinates,tileSetCoordinates,tileCoordiantes,pixelCoordinates。感谢
答案 0 :(得分:8)
当然有。使用方法来保持DRY:
boolean isValid(Point p) {
return p == null || (p.x >= 0 && p.y >= 0);
}
boolean isValid(Coordinate c) {
return isValid(c.mapCoordinates)
&& isValid(c.tileSetCoordinates)
&& isValid(c.tileCoordinates)
&& isValid(c.pixelCoordinates);
}
是的,调用Point
coordinate
类型的变量和Coordinate
point
类型的变量可能会让读者感到困惑。