Esempio

public class ClassA {

public void methodA ( List list ) {

for ( Iterator it = list.iterator(); it.hasNext(); ) {

int anInteger = 2;
Object obj = it.next();

// do something with obj and anInteger...
}
}


Soluzione
Evitare di dichiarare o assegnare all'interno di un loop variabili che non dipendano dalla condizione di loop.
Laddove possibile, assegnarle al di fuori del loop per evitare di dover sostenere costi supplementari.

public class ClassA {

public void methodA ( List list ) {

int anInteger = 2;
Object obj;
for ( Iterator it = list.iterator(); it.hasNext(); ) {

obj = it.next();

// do something with obj and anInteger...
}
}