在Java中打印出所有类型为String的枚举值。

问题描述 投票:-2回答:1

我有一个包含枚举值的枚举。我想只打印enum值的列表。

而不是仅仅打印枚举。我读过关于 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"));

    }

我到底做错了什么?

java enums stream
1个回答
0
投票

People::name 指的是标准枚举的方法名(),你应该为你的方法名提供getter。name 领域,并使用它 People::getName.


0
投票

name 是一个字段,所以你不能对它使用方法引用。你将需要 .map(p -> p.name) 来访问这个名字,因为你没有任何getters。

© www.soinside.com 2019 - 2024. All rights reserved.