gpt4 book ai didi

java - Switch 语句内部条件重构

转载 作者:行者123 更新时间:2023-12-02 02:27:11 24 4
gpt4 key购买 nike

我有一段代码可以工作,但我不喜欢它的外观。它看起来又笨重又凌乱。基本上是一个 if 语句,里面有一个 switch 语句。

有没有办法重构这个?也许很了解如何对付他们?

private Direction update(Coordinates coordinate) {
if (coordinate.isLeft()) {
switch (coordinate.getDirection()) {
case NORTH: return Direction.WEST;
case SOUTH: return Direction.EASTH;
case EASTH: return Direction.NORTH;
case WEST: return Direction.SOUTH;
}
}
if (coordinate.isRight()) {
switch (coordinate.getDirection()) {
case NORTH: return Direction.EASTH;
case SOUTH: return Direction.WEST;
case EASTH: return Direction.SOUTH;
case WEST: return Direction.NORTH;
}
}
return null;
}

最佳答案

如果您按顺时针顺序排列枚举,则可以使用简单的索引从一个走到下一个:

enum Direction {
NORTH, EAST, SOUTH, WEST;

public Direction rotate(boolean clockwise) {
int nextIndex = ordinal() + (clockwise ? 1 : 3);
return values()[nextIndex % 4];
}
}

关于java - Switch 语句内部条件重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47646264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com