Я читаю этот books и есть пример код, который кажется запутанным для меня, запутанная часть фрагмента я описываю ниже:Ненужный тип литья?
private Hashtable rates = new Hashtable();
void addRate(String from, String to, int rate) {
rates.put(new Pair(from , to), new Integer(rate)); // Pair is a value object.
}
int rate(String from, String to) {
Integer rate = (Integer) rates.get(new Pair(from, to)); // The confusing part.
return rate.intValue();
}
Почему нужен автору ввести бросок при получении значения из HashTable
если значение уже имело тип Integer
?
'Hashtable' возвращает объект, поэтому литье необходимо. – markspace
Это, должно быть, старая книга; это [raw types] (http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html). –
С такой нетипизированной хэш-таблицей к ней может быть добавлен любой тип объекта, а не только целые числа –