V
Vayu
Gast
Ich hab da ein Verständnisproblem
Diese Methode gibt ein Set mit Integer Objekten zurück
Diese verlangt ein int als parameter
Hier zeigt mir der Compiler vollkommen zurecht eine Warning an
Hier habe ich jetzt in der for-schleife das Integer zu einem int gemacht, somit gibt unten beei getSizeForKey keine warning mehr, ABER oben in der for-schleifen gibt es auch keine, obwohl doch eigentlich an der Stelle ein Integer nach int unboxed wird. Was macht Java an der Stelle? Wieso gibt es dort keine warning?
<< verwirrt ist.
Diese Methode gibt ein Set mit Integer Objekten zurück
Code:
public Set<Integer> getKeySet() {
return m_contents.keySet();
}
Diese verlangt ein int als parameter
Code:
public int getSizeForKey( int key ) {
int i= 0;
// tue einiges
return i;
}
Hier zeigt mir der Compiler vollkommen zurecht eine Warning an
Code:
int i = 0;
for(Integer io : zac.getKeySet()) {
i += zac.getSizeForKey(io); // << Warning wegen unboxing von Integer in int
}
Hier habe ich jetzt in der for-schleife das Integer zu einem int gemacht, somit gibt unten beei getSizeForKey keine warning mehr, ABER oben in der for-schleifen gibt es auch keine, obwohl doch eigentlich an der Stelle ein Integer nach int unboxed wird. Was macht Java an der Stelle? Wieso gibt es dort keine warning?
Code:
int i = 0;
for(int io : zac.getKeySet()) { // Hier gibt es jetzt KEINE warning, obwohl ein Set<Integer> von getKeySet() zurückgegeben wird
i += zac.getSizeForKey(io);
}
<< verwirrt ist.