title: method collect(Collector<? super Dish,A,R>) in the type Stream<Dish> not applicable for the arguments (Collector<CharSequence,capture#3-of ?,String>)
body: <p>I am getting the below error for Java 8 code developed below. In this example, trying to join all the names of the Dish Name into a single variable. With the below code I got this <code>"The method collect(Collector&lt;? super Dish,A,R&gt;) in the type Stream&lt;Dish&gt; is not applicable for the arguments (Collector&lt;CharSequence,capture#3-of ?,String&gt;)"</code>.</p>
  
  <p><strong>Dish.java</strong></p>
  
  <pre><code>@Builder
  @Data
  @AllArgsConstructor
  public class Dish {
      public enum Type { MEAT, FISH, OTHER }
  
      private final String name;
      private final boolean vegetarian;
      private final int calories;
      private final Type type;
  
      public static final List&lt;Dish&gt; menu =
              Arrays.asList( new Dish("pork", false, 800, Dish.Type.MEAT),
                             new Dish("beef", false, 700, Dish.Type.MEAT),
                             new Dish("chicken", false, 400, Dish.Type.MEAT),
                             new Dish("french fries", true, 530, Dish.Type.OTHER),
                             new Dish("rice", true, 350, Dish.Type.OTHER),
                             new Dish("season fruit", true, 120, Dish.Type.OTHER),
                             new Dish("pizza", true, 550, Dish.Type.OTHER),
                             new Dish("prawns", false, 400, Dish.Type.FISH),
                             new Dish("salmon", false, 450, Dish.Type.FISH));
  }
  </code></pre>
  
  <p><strong>Here is the main method</strong></p>
  
  <pre><code>String shortMenu = Dish.menu.stream().map(Dish::getName).collect(joining());
  System.out.println(shortMenu);
  
  String shortMenu1 = Dish.menu.stream().collect(joining()); //line-3
  </code></pre>