En frameworks de aplicaciones sigo viendo frameworks que le permiten pasar múltiples valores Int (generalmente utilizados en lugar de una enumeración) a una función.¿Cómo usar un operador bit a bit para pasar múltiples valores enteros a una función para Java?
Por ejemplo:
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
...
}
}
Entonces, ¿qué lógica debe existir en multiValueExample para mí para evaluar adecuadamente múltiples valores int que se pasa en el uso del operador de bits?
favor aclarar. No entiendo. Esos no son valores múltiples. Valores.ONE | Valores.THREE | Valores.FIVE = 0x7f020006, ¿verdad? ¿Y cuál es el propósito de los bits sin nombre? –
¿Hay alguna razón específica por la que desee usar operaciones bit a bit? Las soluciones enum/EnumSet son más claras y más parecidas a Java. –