【发布时间】:2020-05-06 20:40:31
【问题描述】:
我有一个带有枚举值的枚举。我只想打印枚举值的列表。
不仅仅是枚举。我已经阅读了有关 Value Of 的信息,但发现这不是正确的做法。
这是我要打印的:
人们外出
人在
这是我的枚举,其中包含值。我添加了一个构造函数。
public enum People {
OUT("People out"),
IN("People in");
private final String name;
People(String name) {
this.name = name;
}
}
获取枚举的方法是:
public String retrieveEnumValues() {
return Stream.of(People.values()).
map(People::name).collect(Collectors.joining("\n"));
}
我在这里做错了什么?
【问题讨论】:
-
enum的name()方法是在隐式超类Enum中声明的内置方法。它返回枚举常量名称,例如OUT,它是final,所以它不能被覆盖以返回其他任何东西。 ---People::name被称为方法引用,那么你为什么认为它会解析为你的name字段的值? -
我建议不要在枚举
name中调用字段 - 与name方法混淆的范围太大。你能称之为不同的东西吗?