title: Why can't I map integers to strings when streaming from an array?
body: <p>This code works (taken in the Javadoc):</p>
  
  <pre><code>List&lt;Integer&gt; numbers = Arrays.asList(1, 2, 3, 4);
  String commaSeparatedNumbers = numbers.stream()
      .map(i -&gt; i.toString())
      .collect(Collectors.joining(", "));
  </code></pre>
  
  <p>This one can't be compiled:</p>
  
  <pre><code>int[] numbers = {1, 2, 3, 4};
  String commaSeparatedNumbers = Arrays.stream(numbers)
      .map((Integer i) -&gt; i.toString())
      .collect(Collectors.joining(", "));
  </code></pre>
  
  <p>IDEA tells me I have an "incompatible return type String in lambda expression".</p>
  
  <p>Why ? And how to fix that ?</p>