Boolescher Wert in der Klassenfunktion in Java ändern

8

Können wir einen booleschen Wert in der Klassenfunktion in Java ändern, funktioniert so etwas nicht, da die Änderung lokal funktioniert. Wie können wir die folgende Änderung durch eine Variable außerhalb des Methodenaufrufs reflektieren lassen?

%Vor%

BEARBEITEN  Der Code könnte so aussehen:

%Vor%

Ich suche nach so etwas

%Vor%

Ist es möglich?

    
Global Warrior 15.04.2012, 12:23
quelle

2 Antworten

18
  

Können wir einen booleschen Wert in der Klassenfunktion in Java

ändern?

Nein, Boolean ist unveränderlich, wie alle Wrapper für die primitiven Typen.

Optionen:

  • Gebe ein boolean von deiner Methode zurück (beste Wahl)
  • Erstellen Sie ein veränderbares Äquivalent von Boolean , mit dem Sie den eingebetteten Wert festlegen können. Sie müssten dann den Wert in der Instanz ändern, auf die sich der Parameter bezieht. Wenn Sie den Wert des Parameters so ändern, dass er auf eine andere Instanz verweist, hilft das nicht, da Argumente immer als Wert übergeben werden Java. Dieser Wert ist entweder ein primitiver Wert oder eine Referenz, aber es wird immer noch an Wert übergeben. Ändern Sie den Wert eines Parameters ändert nie die Variable des Aufrufers.
  • Verwenden Sie ein boolean[] mit einem einzelnen Element als Wrapper-Typ
  • Verwenden Sie AtomicBoolean als Wrapper-Typ
Jon Skeet 15.04.2012, 12:26
quelle
0

Boolean ist unveränderlich, wie alle Wrapper für die primitiven Typen. Soln: Versuchen Sie, MutableBoolean von apacheCommon zu verwenden Ссылка

    
kasongoyo 01.04.2014 10:06
quelle

Tags und Links