Jest to prawdopodobnie proste nieporozumienie z mojej strony.Nie można rzutować HashMap <String, String> na interfejs rozszerzający mapę <String, String>
mają prosty interfejs:
public interface IParams extends Map<String,String> {
}
Następnie próbuję użyć:
IParams params = (IParams) new HashMap<String,String>();
Podania składni i kompilacji, ale w czasie wykonywania otrzymuję:
java.lang.ClassCastException: java.util.HashMap cannot be cast to com.foobar.IParams
żadnego wglądu w którym moje niezrozumienie generycznych jest w tym przypadku?
Nie jesteś nieporozumienie rodzajowych, jesteś nieporozumienie dziedziczenie . – Marcelo
Jakiś powód do rozszerzenia mapy? Czy nadpisujesz jakieś metody? – kosa
Intencją jest stworzenie interfejsu, który ukrywa generyczne, a także trzyma (nie pokazano w przykładzie) definicje kluczy mapowych. –