Ich habe eine lange Reihe von Vergleichen in Java zu erledigen, und ich würde gerne wissen, ob einer oder mehrere davon als wahr herauskommen. Die Reihe der Vergleiche war lang und schwer zu lesen, daher habe ich sie aus Gründen der Lesbarkeit aufgelöst und automatisch einen Verknüpfungsoperator |=
anstelle von verwendet negativeValue = negativeValue || boolean
.
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Ich erwarte negativeValue
, dass dies zutrifft, wenn einer der Standardwerte für <something> negativ ist. Ist das gültig? Wird es tun, was ich erwarte? Ich konnte nicht sehen, dass es auf Suns Site oder im Stackoverflow erwähnt wurde, aber Eclipse scheint kein Problem damit zu haben und der Code wird kompiliert und ausgeführt.
Wenn ich mehrere logische Schnittpunkte ausführen wollte, könnte ich &=
stattdessen anstelle von verwenden &&
?
||=
Operator geeignet , ist aber |=
die Kombinationsform des bitweisen Operators oder Operators.
|=
Kurzschluss wäre mit anderen Operatoren a |= b;
für die Zuweisung von Verbindungen unvereinbar, da dies nicht dasselbe wäre wie a = a | b;
mit der üblichen Einschränkung, a
zweimal auszuwerten (wenn es darauf ankommt). Es sieht für mich so aus, als ob die große Entscheidung über das Sprachverhalten nicht getroffen wurde ||=
, also vermisse ich Ihren Standpunkt.