gpt4 book ai didi

java - 简化值的静态映射

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

我想简化给定的代码(实际上是状态的映射):

private static final Map<SomeStatusEnum, OtherStatusEnum> STATUS_ENUM_MAP = Map.of(
SomeStatusEnum.A, OtherStatusEnum.OK,
SomeStatusEnum.B, OtherStatusEnum.NOK,
SomeStatusEnum.C, OtherStatusEnum.NOK,
SomeStatusEnum.D, OtherStatusEnum.NOK,
SomeStatusEnum.E, OtherStatusEnum.NOK,
SomeStatusEnum.F, OtherStatusEnum.NOK
);

结构如下:

private static final Map<SomeStatusEnum, OtherStatusEnum> STATUS_ENUM_MAP = Map.of(
SomeStatusEnum.A, OtherStatusEnum.OK,
*ALL OTHER SomeStatusEnums*, OtherStatusEnum.NOK
);

这样只有SomeStatusEnum.A指向OtherStatusEnum.OK,而所有其他都指向OtherStatusEnum.NOK,而无需将它们全部写入明确映射。

有人有想法吗?

最佳答案

不确定这是否是您要寻找的 - 但您可以使用带有 getOrDefault 函数的 map ,如下所示:

private static final Map<SomeStatusEnum, OtherStatusEnum> STATUS_ENUM_MAP = 
Map.of(SomeStatusEnum.A, OtherStatusEnum.OK);

然后将 map 用作:

STATUS_ENUM_MAP.getOrDefault(value, OtherStatusEnum.NOK)

关于java - 简化值的静态映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59391911/

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