我有返回值的两个输入地图之间单面相交的函数:通用键控:从地图<T,K>地图<K,V>和地图<T,V>
Map<Key, Value> mergeMaps(Map aKeys<CompositeKey, Key>,
Map <CompositeKey, Value> aValues) {
Map<Key, Value> myResult = Maps.newHashMap();
for (CompositeKey myKey : aKeys.keySet()) {
if (aValues.containsKey(myKey)) {
myResult.put(aKeys.get(myKey), aValues.get(myKey));
}
}
return myResult;
}
这不的传递映射组合物即
T->K, K->V ===> T->V
而是转化
T->(K,V) ===> K->V
有没有在Java中使这个函数通用的方式,使其签名如下?
Map<K, V> mergeMaps(Map aKeys<T, K>, Map <T, V> aValues)
尚未编译,但IntelliJ停止抱怨:) – pbh101 2009-09-01 22:53:45
嗯,我几乎只读过关于Java泛型的投诉。这种语法不规则性也给我一个理由。我试图: Mpa mergeMaps (地图<...>,地图<...>) 非常感谢! –
pbh101
2009-09-01 22:56:11
嗯,您必须在开始阶段或定义阶级中定义泛型参数。我同意在Java中泛型的实现也不完美,但有时它非常整齐。 – Daff 2009-09-01 23:10:14