作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
将枚举元素的名称作为 String
s 数组获取的最简单和/或最短的方法是什么?
我的意思是,例如,如果我有以下枚举:
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/
我是一名优秀的程序员,十分优秀!