В инфраструктурах приложений я все время вижу рамки, которые позволяют передавать в функции несколько значений Int (обычно используемых вместо enum).Как использовать побитовый оператор для передачи нескольких значений Integer в функцию для Java?
Например:
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
...
}
}
Так что логика должна существовать в multiValueExample для меня, чтобы правильно оценить несколько ИНТ значений, передаваемых при помощи оператора побитового?
Просьба уточнить. Я не понимаю. Это не множественные значения. Значения.ONE | Значения.THREE | Значения.FIVE = 0x7f020006, правильно? И в чем цель безымянных бит? –
Есть ли конкретная причина, по которой вы хотите использовать побитовые операции? Решения enum/EnumSet являются понятными и более похожими на Java. –