title: Can anyone explain this method signature? What does <K> and K... represent?
body: <p>Howdy, I am trying to understand this method signature:</p>
  
  <pre><code>  public &lt;K&gt; Map&lt;K, String&gt; getMulti(Serializer&lt;K&gt; keySerializer, K... keys)
  </code></pre>
  
  <p>For the following code block:</p>
  
  <pre><code>public &lt;K&gt; Map&lt;K, String&gt; getMulti(Serializer&lt;K&gt; keySerializer, K... keys) {
      MultigetSliceQuery&lt;K, String, String&gt; q = createMultigetSliceQuery(keyspace, keySerializer, serializer, serializer);
      q.setColumnFamily(CF_NAME);
      q.setKeys(keys);
      q.setColumnNames(COLUMN_NAME);
  
      QueryResult&lt;Rows&lt;K, String, String&gt;&gt; r = q.execute();
      Rows&lt;K, String, String&gt; rows = r.get();
      Map&lt;K, String&gt; ret = new HashMap&lt;K, String&gt;(keys.length);
      for (K k : keys) {
          HColumn&lt;String, String&gt; c = rows.getByKey(k).getColumnSlice().getColumnByName(COLUMN_NAME);
          if (c != null &amp;&amp; c.getValue() != null) {
              ret.put(k, c.getValue());
          }
      }
      return ret;
  }
  </code></pre>
  
  <p>I am not sure what <code>&lt;K&gt;</code> in the method declaration represents, or what <code>K...</code> is suppose to mean. Can anyone shed some light on these?</p>