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
