title: Warning: A generic array of Object&Serializable&Comparable<?> is created for a varargs parameter
body: <p>If I call a (generic) varargs method with objects of different classes, I get an interesting warning:</p>
  
  <pre><code>List&lt;?&gt; result =  Arrays.asList("1", 1);
  </code></pre>
  
  <blockquote>
    <p>A generic array of Object&amp;Serializable&amp;Comparable is created for a varargs parameter</p>
  </blockquote>
  
  <p>I can get rid of the warning by casting to a common interface or class,</p>
  
  <pre><code>List&lt;Serializable&gt; result = asList((Serializable) "1", (Serializable) 1);
  </code></pre>
  
  <p>but what does <code>Object&amp;Serializable&amp;Comparable&lt;?&gt;</code> mean? Can it be used in generic type annotations on method signatures as well (like <code>extends</code> or <code>super</code>)?</p>