Я следил за этим Вопросом и пытался найти новый способ объединения двух массивов.
int[] c = {1, 34};
int[] d = {3, 1, 5};
Я придумал это:
Integer [] res= Stream.of(c, d)
.flatMap(Stream::of)
.toArray(Integer[]::new);
Выше компилируется нормально, но я получаю это исключение:
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.stream.SpinedBuffer.copyInto(SpinedBuffer.java:194)
at java.util.stream.Nodes$SpinedNodeBuilder.copyInto(Nodes.java:1290)
at java.util.stream.SpinedBuffer.asArray(SpinedBuffer.java:215)
at java.util.stream.Nodes$SpinedNodeBuilder.asArray(Nodes.java:1296)
at java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:439)
В чем моя ошибка, и, пожалуйста, дайте объяснение, чтобы я мог понять концепцию.
PS: я видел Работа с ArrayStoreException и считаю, что мой вопрос состоит из потока, которыенесовместимые типы, поэтому они не сохраняются, поэтому два вопроса разные.