Java枚举方法-返回相反方向的枚举

Java枚举方法-返回相反方向的枚举,第1张

Java枚举方法-返回相反方向的枚举

对于那些按标题吸引的人:是的,您可以在枚举中定义自己的方法。如果您想知道如何调用这种非静态方法,则可以使用与其他任何非静态方法相同的方法-
在定义或继承该方法的类型实例上调用它。如果是枚举,则此类实例仅为

ENUM_CONSTANT
s。

因此,您所需要做的就是

EnumType.ENUM_CONSTANT.methodName(arguments)


现在让我们从问题回到问题。解决方案之一可能是

public enum Direction {    NORTH, SOUTH, EAST, WEST;    private Direction opposite;    static {        NORTH.opposite = SOUTH;        SOUTH.opposite = NORTH;        EAST.opposite = WEST;        WEST.opposite = EAST;    }    public Direction getOppositeDirection() {        return opposite;    }}

现在

Direction.NORTH.getOppositeDirection()
将返回
Direction.SOUTH


这是说明@jedwards注释的更多“
hacky”方法,但是它不如第一种方法灵活,因为添加更多字段或更改其顺序将破坏我们的代码。

public enum Direction {    NORTH, EAST, SOUTH, WEST;    // cached values to avoid recreating such array each time method is called    private static final Direction[] VALUES = values();    public Direction getOppositeDirection() {        return VALUES[(ordinal() + 2) % 4];     }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5013614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-15

发表评论

登录后才能评论

评论列表(0条)

    保存