将枚举中的所有名称作为String []获取

康斯坦丁:

将枚举元素的名称获取为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);
}

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(", ");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取友好的枚举名称作为IQueryable

如何获取嵌套对象中的所有名称?

获取Dart类的名称作为Type或String

获取列表名称作为数据框中的列

在图matplotlib中获取组名称作为轴

获取列名称作为ssrs中的参数

如何通过在Typescript中提供其名称作为参数来获取枚举值

如何使用Scene Kit在Swift中获取具有名称的所有子节点

获取与类型关联的所有名称空间?

无法从网站的登录页面获取所有名称

如何获取sql表的所有名称?

获取数据集 R 包中对象的所有名称的列表?

如何获取 office.js 中的所有名称(不是值)?

Python正则表达式-如何获取一行中的所有名称?

通过控制台获取TD元素中的所有名称

仅在容器中获取Azure Blob文件的所有名称?

如何在Python中获取类的类方法的所有名称

在 discord.py 中获取服务器成员的所有名称

将Haskel中的所有函数参数作为列表获取

如何获取所有 div 标签的一个“div”标签中的“a”标签中的所有名称?

如何获取所有枚举值作为数组

MongoDB 将字段名称作为字符串插入,而不是获取值

是否可以将接口名称作为字符串获取?

Rails-通过关联将has_many =>的名称作为字符串获取

如何将符号名称作为字符串列表获取?

Golang:获取具有字段名称作为字符串的基础结构

在C ++中的静态方法中将类名称作为字符串获取

从输入字符串中获取属性名称作为字符串

从类列表中获取被调用的方法的名称作为字符串