Ahoj,

vzdyt tam mas pretypovani na List<?>. Tak si nejsem jisty, jak jsi to
myslel. Jinak cyklus

for (Employee e : list) {
  ...
}

bude pred prekladem (ve fazi desuggaring) nahrazen cyklem

for (Iterator<Employee> i = list.iterator(); i.hasNext(); ) {
  Employee e = i.next();
  ...
}

Tedy cyklus

for (Object o : list) {
  ...
}

kde list je typu List<Employee> bude nahrazen cyklem

for (Iterator<Employee> i = list.iterator(); i.hasNext(); ) {
  Object o = i.next();
  ...
}

Po odmazani typovych parametru:

for (Iterator i = list.iterator(); i.hasNext(); ) {
  Object o = i.next();
  ...
}

Takze podle meho nazoru by to volani melo projit.

Z.
-- 
Zdenek Tronicek
FIT CTU in Prague


Ondra Medek napsal(a):
> Ahoj,
>
> mam metodu
>
> protected void process(List<Employee> list) {
>   // ...
>
>   for (Object object : (List<?>)list) {
>     @SuppressWarnings("unchecked")
>     Map<String, Object> map = (Map<String, Object>)object;
>     // ...
>   }
> }
>
> ovsem za parametr list je misto List<Employee> pouzivan List<HashMap>.
> Ano, je to prasarna, ale to je ted vedlejsi.
>
> na stroji WinXP s
> java version "1.6.0_18"
> Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
> Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
>
> to projde, kdezto na Linuxu se stejnou Javou:
> java version "1.6.0_18"
> Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
> Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
>
> to vyhodi
>
> java.lang.ClassCastException: java.util.HashMap cannot be cast to
> cz.prins.tiger.db.Employee
>
> Jen by mne zajimalo, ktere chovani je dobre? BTW. kdyz ten list
> pretypuju na List<?>, tak to dopadne dobre vsude.
>
>
> --
> Ondra Medek
>

Odpovedet emailem