你好,我想了解这个方法的签名:任何人都可以解释这种方法签名? <K>和K ...代表什么?
public <K> Map<K, String> getMulti(Serializer<K> keySerializer, K... keys)
对于下面的代码块:
public <K> Map<K, String> getMulti(Serializer<K> keySerializer, K... keys) {
MultigetSliceQuery<K, String, String> q = createMultigetSliceQuery(keyspace, keySerializer, serializer, serializer);
q.setColumnFamily(CF_NAME);
q.setKeys(keys);
q.setColumnNames(COLUMN_NAME);
QueryResult<Rows<K, String, String>> r = q.execute();
Rows<K, String, String> rows = r.get();
Map<K, String> ret = new HashMap<K, String>(keys.length);
for (K k : keys) {
HColumn<String, String> c = rows.getByKey(k).getColumnSlice().getColumnByName(COLUMN_NAME);
if (c != null && c.getValue() != null) {
ret.put(k, c.getValue());
}
}
return ret;
}
我不知道什么<K>
在方法声明中表示,或想什么K...
意思是说。任何人都可以阐明这些吗?
如果我正在编写一个需要一个键作为参数传递的方法,并且我确切知道该键是什么类的引用,是否需要使用'K'作为占位符?例如。 '私人布尔capReached(K键)'与'私人布尔capReached(整数键)'。在我的情况下,我使用这种方法来限制一个LinkedHashMap的大小。 – Ungeheuer 2016-07-25 18:20:16