gpt4 book ai didi

java - 获取所有枚举常量

转载 作者:行者123 更新时间:2023-12-03 18:42:06 24 4
gpt4 key购买 nike

如何一次检索枚举的所有值?期望值: ["Male", "Female"]GenderEnum.values() 的输出: ["MALE", "FEMALE"]

    public enum SPGenderEnum {
MALE("Male"),
FEMALE("Female");

private SPGenderEnum(final String type) {
this.type = type;
}

private final String type;

public String getType() {return type;}

@Override
public String toString() {
return type;
}
}

最佳答案

如果您使用的是 Java 8,流 API 可能是检索所需值的最简单方法:

Stream.of(GenderEnum.values())       // create stream of enum constants
.map(e -> e.getType()) // for each constant, retrieve getType()
.collect(Collectors.toList()) // collect results into a list

表达式 e -> e.getType() 称为 lambda 表达式,它是声明一个非常简单的函数的简写方式。 map 运算符将该函数应用于流中的每个元素,并用函数的返回值替换每个元素。在这种情况下,lambda 返回调用 e.getType() 的结果,其中 e 被假定为 GenderEnum 值。

像这样的简单 lambda 可以用一种更简洁的形式重写,称为方法引用,如@ifly6 的回答。

您可以将结果收集到 String[] 中,方法是将 collect(Collectors.toList()) 替换为 toArray(String[]::new )

关于java - 获取所有枚举常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50797989/

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