gpt4 book ai didi

java - 谁能解释这个方法签名? 和 K... 代表什么?

转载 作者:行者123 更新时间:2023-12-04 21:27:56 25 4
gpt4 key购买 nike

你好,我正在尝试理解这个方法签名:

  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...应该是什么意思任何人都可以阐明这些吗?

最佳答案

Ktype parameter of this method .它可以是任何你想要的。例如。 整数。在这种情况下,您需要直观地(在您的脑海中)将方法签名中的所有K 替换为Integer 以了解它正在采取什么,并且返回。将 Integer 作为 K,该方法的行为如下:

public Map<Integer, String> getMulti(Serializer<Integer> keySerializer, Integer... keys)

... 又是 varargs句法。它允许您将给定类型的零多个参数或给定类型的数组传递给方法。例如

getMulti(serializer);
getMulti(serializer, k1);
getMulti(serializer, k1, k2, k3);

关于java - 谁能解释这个方法签名? <K> 和 K... 代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6114460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com