Я могу сделать преобразование с кодом следующим образом:
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
.