gpt4 book ai didi

java - 将枚举中的所有名称作为 String[]

转载 作者:IT老高 更新时间:2023-10-28 11:37:25 25 4
gpt4 key购买 nike

将枚举元素的名称作为 Strings 数组获取的最简单和/或最短的方法是什么?

我的意思是,例如,如果我有以下枚举:

public enum State {
NEW,
RUNNABLE,
BLOCKED,
WAITING,
TIMED_WAITING,
TERMINATED;

public static String[] names() {
// ...
}
}

names() 方法将返回数组 { "NEW", "RUNNABLE", "BLOCKED", "WAITING", "TIMED_WAITING", "TERMINATED"}.

最佳答案

这是任何 enum 类的单行代码:

public static String[] getNames(Class<? extends Enum<?>> e) {
return Arrays.stream(e.getEnumConstants()).map(Enum::name).toArray(String[]::new);
}

Pre Java 8 仍然是单行的,尽管不那么优雅:

public static String[] getNames(Class<? extends Enum<?>> e) {
return Arrays.toString(e.getEnumConstants()).replaceAll("^.|.$", "").split(", ");
}

你会这样称呼:

String[] names = getNames(State.class); // any other enum class will work

如果您只想为硬编码的枚举类做一些简单的事情:

public static String[] names() {
return Arrays.toString(State.values()).replaceAll("^.|.$", "").split(", ");
}

关于java - 将枚举中的所有名称作为 String[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13783295/

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