Von dem, was ich aus dem Code erhalten:
public class Teams{
String[] P={"Hi","there","you"};
}
Eine andere Klasse
//Inside some function in another class
Teams tm=new Teams();
for(int j=0;j<=tm.P.length; j++){
textfield1.setText(tm.P[j]);
textfield2.setText(tm.P[j+1]);
}
Die Variable P
in Klasse Teams
Länge 3. So im Code-Schnipsel unter dem Wert von j
Änderungen von 0 bis 3. In dem Fall, wenn der Wert j
2 ist, wird die Zeile
textfield2.setText(tm.P[j+1]);
sollte ArrayIndexOutOfBoundsException
als Index j+1
werfen, d. H. 3 existiert nicht für P
.
Auch wenn der Wert von P
3 sowohl die Linien
textfield1.setText(tm.P[j]);
textfield2.setText(tm.P[j+1]);
sollte ein ArrayIndexOutOfBoundsException
als Index der P
3 für die erste Zeile und 4 für die zweite Zeile werfen.
Jetzt, da Sie deutlich in Ihren Kommentaren angegeben haben, dass keine Ausnahme geworfen wird, fühle ich, dass dieser Code in einem try - catch
Block sein muss, der Exception
Objekte fängt. Auch dies sollte erklären, warum diese Art von Verhalten den letzten Wert von P
in beiden Textfeldern zeigt.
Wenn j
1, textfield2.setText(tm.P[j+1])
ist, wird der Text in diesem Feld auf das letzte Element "you"
gesetzt. Jetzt in der nächsten Schleife, wenn j
den Wert 2 erreicht, wird das erste Textfeld textfield2
auf das letzte Element "you"
gesetzt. Aber in der nächsten Zeile wird eine Ausnahme ausgelöst, so dass die Zeile nicht ausgeführt wird, so dass der Text textfield2
zu you
bleibt.
schließlich, wenn j
3 ist die erste Zeile selbst wirft die Ausnahme, so dass der Code nach der ersten Zeile nicht ausgeführt wird und beide textfield1
und textfield2
haben Text "you"
in ihnen gespeicherten Werte und das ist, was angezeigt wird und die Ergebnisse für das Problem du hast hervorgehoben.
Abgesehen, dass Ihre Frage unklar ist, wird dieser Code nicht einmal kompilieren. –
Geben Sie den vollständigen Code ein. Warum willst du ganze Liste/Array iterieren? – Rehman
Was ist die Klasse 'Teams' und was ist' Teams.P'? – Blip