Когда я выбрал Collections.synchronizedMap() для хэш-карты, он возвращает исключение класса cast, но когда я отбрасываю карту в хэш-карту, она отлично работает.Collections.synchronizedMap() возвращает класс cast exception, где, когда нормальная карта работает нормально
Согласно моему пониманию Collections.synchronizedMap() также возвращает карту.
Тогда почему я получаю это исключение.
Как это сделать.
Пример кода
public class Main_1 {
public static void main(String[] args) throws UnknownHostException, IOException {
Map m = new HashMap();
m.put("sachin", "sacjdeva");
// Throws exception here
HashMap hm = (HashMap) Collections.synchronizedMap(m);
//No exception
HashMap hm = (HashMap)(m)
System.out.println(hm);
}
}
Хорошо, если его synchronizedMap и бросает исключение произнесения класс может преобразовать этот SynchronizedMap в HashMap.
«Карта» - это интерфейс, но «HashMap» - это тип реализации. Поэтому лучше отнести его к «Карте» – SacJn
Вы не можете отнести интерфейс к классу реализации-интерфейса, вы можете вызвать конструктор hashmap, указав вместо этого карту как вход. – morels
Возможный дубликат [Разница между назначениями динамического и статического типов в Java] (http://stackoverflow.com/questions/20504714/difference-between-dynamic-and-static-type-assignments-in-java) –