2011/4/13 Martin Beránek <[email protected]>:
> Zdravím,
>
> našel jsem celkem rozumné vysvětlení:
>
> Restrikce se zavádějí proto, aby se něco nepokazilo.
>
> Zavoláním get s jiným typem se nic nepokazí. Ještě trošku umělý příklad:
>
> Map<String,Date> datumyNarozeni = ...
> class Person {
>        String fullName
>        String login
>
>        hashCode {
>                return login.hashCode();
>        }
>
>        equals(Object o) {
>                return login.equals(o);
>        }
> }
>
> datumyNarozeni.put("michal",new Date());
>
> odnekud mi prijde objekt Person p kde je login michal, pak muzu udelat:
>
> datumyNarozeni.get(p) a dostanu to spravne datum
>
> Martin
>

tak tento příklad se mi hodně nelíbí. Takového programátora zatahat za uši ;-)
Nebudu koukat do implementace Person, jak je napsaný hashCode a equals ...
Určitě by každý normální programátor napsal toto:

datumyNarozeni.get(p.getLogin());

V každém případě - původní dotaz je docela namístě.
Úryvek ze stackoverflow mě úplně nepřesvědčil ...
Kdyby člověk použil
Map<List, Something> místo Map<ArrayList, Something>, tak by to
fungovalo i s ArrayList i s LinkedList.

Fafi

Odpovedet emailem