приведенный ниже фрагмент кода не компилируется; У меня есть общий класс с картой, которая отображает из общего ключа K в Floats. Большинство моих методов относятся к этой карте по-настоящему общего.Метод ограничения в родовом классе конкретному типу
Кроме того, я хочу разрешить инициализацию карты с восходящими целыми значениями. Ясно, что это требует от меня ограничения метода только на K = целое. К сожалению, я получаю следующую ошибку:
The method put(K, Float) in the type Map is not applicable for the arguments (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++;
}
}
}
есть не 'return' в' метод SparsePDT' o.o – ItamarG3
Вы знаете, что 'Integer' объявлен' final'? –
@ItamarGreen спасибо, это был всего лишь артефакт, прежде чем уменьшить это до примера игрушек. Этот метод фактически является конструктором. – Chris