'Converting int[][] to boolean[][]: java.lang.ArrayStoreException

layout is int[][]

boolean[][] booleanTileMap = Arrays
      .stream(layout)
      .map((row) -> 
        Arrays
          .stream(row)
          .mapToObj((value) -> value != 0)
          .toArray()
      )
      .toArray(boolean[][]::new);

Full Error:

Exception in thread "AWT-EventQueue-0" java.lang.ArrayStoreException: [Ljava.lang.Object;
        at java.base/java.util.stream.Nodes$FixedNodeBuilder.accept(Nodes.java:1222)
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
        at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
        at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
        at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)

What did I do wrong? IDE didn't highlight any errors or warnings.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source