Tengo un largo conjunto de comparaciones que hacer en Java, y me gustaría saber si una o más de ellas aparecen como verdaderas. La secuencia de comparaciones fue larga y difícil de leer, así que la descompuse para poder leerla y automáticamente fui a usar un operador de acceso directo |=
en lugar de negativeValue = negativeValue || boolean
.Operador de acceso directo "or-assignment" (| =) en Java
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
espero negativeValue
para ser verdad si alguna de las predeterminado <algo> valores son negativos. Es esto valido? ¿Hará lo que espero? No pude verlo mencionado en el sitio de Sun o stackoverflow, pero Eclipse no parece tener un problema y el código se compila y ejecuta.
Del mismo modo, si quería realizar varias intersecciones lógicas, podría utilizar en lugar de &=
&&
?
¿Por qué no lo intentas? – Roman
Esta es una lógica booleana general, no solo Java. para que pueda buscarlo en otros lugares. ¿Y por qué no lo intentas? – Dykam
@Dykam: No, hay un comportamiento específico aquí. Java * podría * elegir hacer | = un cortocircuito, de modo que no evaluará el RHS si el LHS ya es verdadero, pero no es así. –