gpt4 book ai didi

java - 在java中为枚举添加别名

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

我有一个用例,我想使用该枚举的别名访问枚举实例。

我想使用别名访问枚举实例的原因是允许访问具有非英语字符的枚举值(我的具体用例是希伯来语)。

问题是,这是框架的一部分,我需要能够向任何给定的枚举添加多个别名。需要允许更自然的语言,因为给定的别名将用作规范的一部分( gauge-java )。

关于如何正确执行此操作有什么建议吗?

编辑:我添加一个示例:

Go to "בית"

这是一个将映射到方法的步骤:

@Step("Go to <page>")
public void goToPage(Page page) {...}

最佳答案

枚举可以包含静态和实例字段,并像任何其他类一样具有构造函数:

enum Foo {
A("alias1", "alias2"),
B("alias3");

private static final Map<String, Foo> gAliases = new HashMap<>();

private Foo(String... aliases) {
for(final String alias : aliases) {
gAliases.put(alias, this);
}
}

public static Foo forAlias(String alias) {
return gAliases.get(alias);
}
}

您还可以省略构造函数并在静态初始值设定项中填充别名映射。但我喜欢构造函数如何使读取和维护哪些别名对应于哪些常量变得容易。

关于java - 在java中为枚举添加别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41494056/

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