开发者社区> 问答> 正文

以枚举形式获取枚举中的所有名称

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

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

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

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

} 该names()方法将返回数组{ "NEW", "RUNNABLE", "BLOCKED", "WAITING", "TIMED_WAITING", "TERMINATED" }。 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-08 12:13:09 400 0
1 条回答
写回答
取消 提交回答
  • 这是任何enum班级的一线客:

    public static String[] getNames(Class > e) { return Arrays.stream(e.getEnumConstants()).map(Enum::name).toArray(String[]::new); } Java 8之前的版本仍然是单一的,尽管不太优雅:

    public static String[] getNames(Class > 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(", "); }

    2020-02-08 12:13:21
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载