Java booleschen operator"|="

Kürzlich sah ich einen code mit diesem:

boolean val = something();
val |= somethingElse();

Interessante Teil ist, | = (binären wie) - operator auf primitiven Typ boolean.

Wundert es mich, dass |= existiert für boolean, als wenn es integer-Typ, und suchte Java-Spezifikation für diesen operator, konnte aber keine finden.

Ich würde gespannt sein, ob die Rechte operand wird ausgewertet, wenn der linke Wert bereits true ist.

Kann mir jemand zeigen, um Java-Spezifikation dieses?

  • Es ist lediglich val = val | ähnliches(); // ähnliches() erwartet als return boolean. Es ist ein standard ODER
  • OP weiß, fragt er nach Angabe in einem Dokument.
  • Antwort ist hier dudes: stackoverflow.com/q/2486472/544983
  • Ich dachte, es ist nur || für Boolesche Ausdrücke, so würde ich erwarten, dass Betreiber wie die ||= . Macht es Sinn machen Binär - | ein boolean?
  • Keine Verknüpfung, Auswertung, obwohl nicht ausdrücklich erwähnt. Nur in || den shortcut Logik ist ausdrücklich erwähnt.
  • es ist nicht ein standard-ODER, es ist eine bitweise ODER-operator (im Gegensatz zu einer booleschen operator). Es ist auch eine aggressive operator, im Gegensatz zu einem Kurzschluss-operator (der wie der Boolesche operator).

InformationsquelleAutor Pointer Null | 2013-03-14
Schreibe einen Kommentar