Ho una lunga serie di confronti da fare in Java, e mi piacerebbe sapere se uno o più di essi risultano veri. La stringa dei confronti era lunga e difficile da leggere, quindi l'ho riorganizzata per renderla leggibile, e sono andato automaticamente a utilizzare un operatore di scorciatoia |=
anziché negativeValue = negativeValue || boolean
.Collegamento "or-assignment" (| =) operatore in Java
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
mi aspetto negativeValue
per essere vero se qualcuno di default <qualcosa> valori sono negativi. È valido? Farà quello che mi aspetto? Non riuscivo a vederlo menzionato sul sito o sullo stackoverflow di Sun, ma Eclipse non sembra avere un problema con esso e il codice viene compilato ed eseguito.
Allo stesso modo, se volevo eseguire diverse intersezioni logiche, potrei usare &=
invece di &&
?
Perché non lo provi? – Roman
Questa è una logica booleana generale, non solo Java. così puoi cercarlo su altri posti. E perché non lo provi? – Dykam
@Dykam: No, c'è un comportamento specifico qui. Java * potrebbe * scegliere di effettuare | = corto-circuito, in modo che non valuti l'RHS se l'LHS è già vero - ma non lo fa. –