【发布时间】:2016-11-08 10:19:22
【问题描述】:
下面的代码sn-p不能编译;我有一个带有 Map 的通用类,它从通用键 K 映射到 Floats。我的大多数方法都以真正通用的方式处理此地图。
此外,我想允许使用升序整数值初始化地图。显然,这需要我将方法限制为仅 K=Integer。不幸的是,我收到以下错误:
类型Map中的put(K, Float)方法不适用于参数(K extends Integer, Float)
非常感谢这里的任何帮助!
public class MyClass<K> {
Map<K,Float> myMap;
<K extends Integer> MyClass(int size){
distribution = new HashMap<K,Float>();
Integer bar = 0;
while(bar<size){
Float rnd = ThreadLocalRandom.current().nextFloat();
myMap.put(bar,rnd);
bar++;
}
}
}
【问题讨论】:
-
SparsePDT方法中没有returno.o -
你知道,
Integer被声明为final吗? -
@ItamarGreen 谢谢,在将其简化为玩具示例之前,这只是一个人工制品。该方法实际上是一个构造函数。
-
@F.Lumnitz 我知道。或者,我也可以使用可以迭代的非最终类型。
标签: java generics dictionary