gpt4 book ai didi

java - 使用 java 8 流将位字符串转换为枚举数组

转载 作者:行者123 更新时间:2023-12-02 20:35:56 25 4
gpt4 key购买 nike

我有一串空格分隔的位(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();

我在使用这段代码时遇到以下问题:

  1. 它使用类型转换将 Object 数组更改为 Color 数组,这可能会导致运行时错误。如果没有类型转换,我会非常希望它。

  2. map 功能。我在 StackOverflow 上的 mapToObj 上进行了搜索,看看是否有一种方法可以指定映射的返回类型。我认为当您指定 map 应返回 Color 对象时更安全。

最佳答案

要避免强制转换,请将参数传递给 toArray:

.toArray(Color[]::new)

这是唯一需要的更改。

不需要为map函数指定返回类型。事实上,您仅返回 Color 的实例,这意味着它的返回类型是 Color

关于java - 使用 java 8 流将位字符串转换为枚举数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61105871/

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