使用流将布尔值的对象 [] 转换为布尔值 []
2022-09-02 00:44:11
我可以用这样的代码进行转换:
Object[] array = (Object[]) message.get(key);
boolean[] result = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = (boolean) array[i];
}
但是,我认为使用Java 8流进行相同的转换是可能的。我开始编写如下代码:
boolean[] = Arrays.stream(array)
.map(Boolean.class::cast)
.map(Boolean::booleanValue)
.toArray()
但是此代码不起作用。编译器 说
incompatible types: java.lang.Object[] cannot be converted to boolean[]
我试图理解代码的问题是什么。我认为这将返回一系列布尔值,我可以用 收集 。map(Boolean::booleanValue)
toArray