0
我有很多種消息要發送,用戶可以訂閱其中的一些消息。實現不同消息的訂閱
我打算使用二進制和&設置操作來決定是否發送消息。
例如:
有三個消息:消息的消息B和消息C
如果有人訂閱所有的人,該二進制數是該用戶111。現在將發送一條消息A(100),我將使用這個數字(100)& 111.如果我沒有得到一個零,我會將它發送給用戶。
public class TestBinary {
static final int USER_DEFINED_NUM = 7; // 111
static final int REQUEST_NUM = 8; //1000
public static void main(String[] args) {
boolean result = (USER_DEFINED_NUM & REQUEST_NUM) != 0;
if(result) {
System.out.println("send");
} else {
System.out.println("not send");
}
}
}
此方法將失敗,如果存在32個以上的消息的種類,因爲int類型只能代表32種消息類型。
你有更好的辦法嗎?謝謝:)
在第一種方法中,我可以使用列和值4來表示消息A的訂閱。如果使用以下方法,我應該如何設計數據庫表? – Felix 2012-03-05 07:17:06