Supponiamo di avere n valori booleani, dove n è un numero relativamente piccolo (3-5 circa). Diciamo che i valori sono proprietà di una classe, ognuna delle quali può essere impostata o disattivata indipendentemente. Quindi, ci sono 2 n combinazioni possibili. Ora voglio distinguere tra queste combinazioni in un modo simile a un interruttore. Attualmente, di solito faccio qualcosa del genere:Costruisci switch per combinazioni di booleani
int mask = (bool1 ? 1 : 0) +
(bool2 ? 2 : 0) +
(bool3 ? 4 : 0) +
... ;
switch (mask) {
case 0b000:
// all variables false
case 0b001:
// only bool1 true
case 0b011:
// only bool1 and bool2 true
...
}
Questo funziona, ma non lo trovo molto elegante. C'è qualche best practice (in Java) o linguaggio Java per casi come questo?
Perché non si usa se dichiarazione? Sarà molto più leggibile allora questo interruttore. – DontRelaX
Questo ** potrebbe ** essere più adatto per [revisione del codice] (http://codereview.stackexchange.com/), sebbene non voti per chiudere in dubbio. – Mena
@DontRelaX Ci sono alcuni modi per fare ifs, perché non metti il tuo preferito come risposta. E considera come apparirà quando avrai 5 bool. – weston