Trong các khung ứng dụng, tôi tiếp tục thấy các khuôn khổ cho phép bạn truyền vào nhiều giá trị Int (thường được sử dụng thay cho một enum) thành một hàm.Làm thế nào để sử dụng toán tử bitwise để chuyển nhiều giá trị Integer vào một hàm cho Java?
Ví dụ:
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
...
}
}
Vì vậy, những gì logic nên tồn tại trong multiValueExample cho tôi để đánh giá đúng nhiều giá trị int được thông qua việc sử dụng các nhà điều hành Bitwise?
Xin làm rõ. Tôi không hiểu. Đó không phải là nhiều giá trị. Values.ONE | Giá trị.THREE | Values.FIVE = 0x7f020006, phải không? Và mục đích của các bit chưa được đặt tên là gì? –
Có lý do cụ thể nào khiến bạn muốn sử dụng các hoạt động bitwise không? Các giải pháp enum/EnumSet là clearner và giống Java hơn. –