【发布时间】:2020-04-08 16:52:17
【问题描述】:
我有一串空格分隔的位(1 和 0),我想将其转换为枚举数组。以下是我迄今为止的努力。
这是枚举类
enum Color { RED, GREEN }
这是转换代码。
Color[] colors = (Color[]) Arrays.stream(sc.nextLine().split("\\s"))
.map(i -> {
if (i.equals("0")) return Color.RED;
else return Color.GREEN;
})
.toArray();
这段代码我面临以下问题:
它使用类型转换从
Objects 数组更改为Colors 数组,这可能会产生运行时错误。如果没有类型转换,我会非常喜欢。地图功能。我在
mapToObj上的 StackOverflow 上进行了搜索,看看是否有一种方法可以指定地图的返回类型。我认为当您指定地图应返回Color对象时更安全。
【问题讨论】:
-
非常有趣!如何指定它是 0 或 1
-
如何指定什么是0还是1?
-
是的。我如何告诉 Color 它是哪一个
-
用你的地图功能,就像你现在做的那样?
-
像这样:
map(i -> i.toArray[i])?
标签: java generics java-8 enums java-stream