penso che un bit per bit OR:
if ((a | b) == 0) . . .
potrebbe funzionare se si desidera controllare specificamente per 0. I' Non sono sicuro se questo consente di risparmiare tempo di esecuzione. Più precisamente, rende il codice criptico, che renderà maledetto il futuro manutentore di questo codice (anche se stesso). Consiglio di attenersi all'opzione più tipografica.
Bah. Ho interpretato male la logica originale di OP.
un altro andare ...
Se si vuole verificare se una qualsiasi delle molte variabili è pari ad un valore atteso, una funzione generica potrebbe funzionare:
public <T> boolean exists(T target, T... values) {
for (T value : values) {
if (target == null) {
if (value == null) {
return true;
}
} else if (target.equals(value)) {
return true;
}
}
return false;
}
Questo lavoro per qualsiasi numero di oggetti di un tipo I primitivi saranno chiusi automaticamente in modo che funzionino anche con loro. Il tuo codice originale sarà qualcosa di simile:
if (test(0, a, b)) {
// do something
}
(A nome del metodo migliore sarebbe un disperato bisogno di prendere in considerazione anche se questo un miglioramento rispetto a quello che hai ora Anche se il test si espande fino a 3 o 4 variabili, mi chiedo. . la necessità di questo tipo di cosa) si noti che questo funziona anche con le matrici:
int[] values = { . . . };
if (test(0, values)) { . . .
e può essere utilizzato per verificare se una matrice (o qualsiasi di una collezione di variabili) è null
.
fonte
2012-01-22 16:45:46
Perché lo vuoi anche tu? – harold
possibile duplicato di [Il modo migliore per formattare più 'o' condizioni in un'istruzione if (Java)] (http://stackoverflow.com/questions/7604814/best-way-to-format-multiple-or-conditions-in -an-if-statement-java) –
perché il codice apparirebbe meglio allora? –