( Csab | 2013. 05. 07., k – 17:25 )

A listáknál generics-et használnak <String>.

Ez fordítási időben kerül ellenőrzésre. Természetesen írhatsz Object-et is, de akkor már tényleg semmi értelme az egész generics-nek, mert utána kasztolhatsz ezerrel és agybajt fogsz kapni az idióta kódtól. A régi java-nál, amíg nem volt generics, kötelező volt kasztolni, ha a hash-ből egy elemet kivettél.

Természetesen mindenre van megoldás:


public <T> T getValue(String name, T dflt)
{
  T response = (T)hash.get(name);
  return (response != null) ? response : dflt;
}

Ez olyan értéket ad vissza, amilyen default-ot megadsz. Vannak java-s cuccok, amik kifejezetten szeretik hash-ben tartani az értékeket, utána meg a fentiekhez hasonló generikus hívásokkal játszanak.