title: How can forEach() of a list takes non Consumer<T> expression like list::add
body: <p>Consider the below snippet:</p>
  
  <pre><code>List&lt;String&gt; strList = new ArrayList&lt;&gt;();               
  List&lt;String&gt; strList2 = new ArrayList&lt;&gt;();      
  
  strList.forEach(strList2::add);
  </code></pre>
  
  <p>How this can be possible when <code>list.forEach()</code> accepts only <code>Consumer&lt;T&gt;</code> which has <code>void accept(T t)</code> as method where <code>list::add</code> has signature of <code>boolean accept(T t)</code>? There is a mismatch in return type right?</p>