Nei framework dell'applicazione continuo a vedere framework che consentono di passare in più valori Int (generalmente utilizzati al posto di un enum) in una funzione.Come utilizzare un operatore bit per bit per passare più valori Integer in una funzione per Java?
Ad esempio:
public class Example
{
public class Values
{
public static final int ONE = 0x7f020000;
public static final int TWO = 0x7f020001;
public static final int THREE = 0x7f020002;
public static final int FOUR = 0x7f020003;
public static final int FIVE = 0x7f020004;
}
public static void main(String [] args)
{
// should evaluate just Values.ONE
Example.multiValueExample(Values.ONE);
// should evalueate just values Values.ONE, Values.THREE, Values.FIVE
Example.multiValueExample(Values.ONE | Values.THREE | Values.FIVE);
// should evalueate just values Values.TWO , Values.FIVE
Example.multiValueExample(Values.TWO | Values.FIVE);
}
public static void multiValueExample(int values){
// Logic that properly evaluates bitwise values
...
}
}
Quindi, quale logica dovrebbe esistere in multiValueExample per me per valutare correttamente più valori int vengono passati utilizzando l'operatore bit per bit?
chiarire. Non capisco. Quelli non sono più valori. Valori.ONE | Valori.THREE | Values.FIVE = 0x7f020006, giusto? E qual è lo scopo dei bit senza nome? –
C'è un motivo specifico per cui si desidera utilizzare operazioni bit a bit? Le soluzioni enum/EnumSet sono più chiare e più simili a Java. –