Sim*_*_me 10 java enums java-8 java-stream
我正在尝试并且失败,检索所有枚举值并使用Java 8和流将它们放入列表中.到目前为止,我已尝试过以下两种方法,但两者都没有返回值.
我究竟做错了什么?
码:
public class Main {
public static void main(String[] args) {
List<String> fruits1 = Stream.of(FruitsEnum.values())
.map(FruitsEnum::name)
.collect(Collectors.toList());
List<String> fruits2 = Stream.of(FruitsEnum.values().toString())
.collect(Collectors.toList());
// attempt 1
System.out.println(fruits1);
// attempt 2
System.out.println(fruits2);
}
enum FruitsEnum {
APPLE("APPL"),
BANANA("BNN");
private String fruit;
FruitsEnum(String fruit) {this.fruit = fruit;}
String getValue() { return fruit; }
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
[APPLE, BANANA]
[[LMain$FruitsEnum;@41629346]
Run Code Online (Sandbox Code Playgroud)
期望:
["AAPL", "BNN"]
Run Code Online (Sandbox Code Playgroud)
你需要map与getValue
List<String> fruits = Stream.of(FruitsEnum.values())
.map(FruitsEnum::getValue) // map using 'getValue'
.collect(Collectors.toList());
System.out.println(fruits);
Run Code Online (Sandbox Code Playgroud)
这会给你输出
[APPL, BNN]
Run Code Online (Sandbox Code Playgroud)
这应该做的伎俩:
Arrays.stream(FruitsEnum.values())
.map(FruitsEnum::getValue)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |