In Java erfolgt die Parameterübergabe grundsätzlich nach Wert, was eine Herausforderung darstellt, wenn versucht wird, primitive Variablen innerhalb einer Methode auszutauschen . Eine naive Implementierung wie:
<code class="java">void swap(int a, int b) { int temp = a; a = b; b = temp; }</code>
ändert die ursprünglichen Variablen außerhalb der Methode nicht wirklich. Um dieses Problem anzugehen, gibt es hier zwei unkonventionelle Ansätze:
Diese Technik ermöglicht das Austauschen durch Nutzung der Reihenfolge von Operationen in Methodenaufrufen:
<code class="java">int swap(int a, int b) { // usage: y = swap(x, x=y); return a; }</code>
Wann Beim Aufruf von swap(x, x=y) wird der Wert von x vor der Zuweisung an x an swap übergeben. Wenn also a zurückgegeben und y zugewiesen wird, vertauscht es effektiv die Werte von x und y.
Für eine allgemeinere Lösung kann eine generische Methode definiert werden die eine beliebige Anzahl von Objekten desselben Typs austauschen kann:
<code class="java"><T> T swap(T... args) { // usage: z = swap(a, a=b, b=c, ... y=z); return args[0]; }</code>
Der Aufruf dieser Methode als z = swap(a, a=b, b=c) tauscht die Werte von a, b und c aus , den endgültigen Wert z.
zuweisenDas obige ist der detaillierte Inhalt vonWie können Sie primitive Variablen in Java austauschen, wenn die Parameterübergabe nach Wert erfolgt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!