私は多くの種類のメッセージを送信し、ユーザーはそれらのメッセージの一部を購読できます。異なるメッセージのサブスクリプションを実現
私はバイナリと&セット操作を使用して、送信するメッセージを決定する予定です。例えば
:
3件のメッセージがあります。誰かはそれらの全てを購読している場合、メッセージ、メッセージ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種類のメッセージタイプしか表現できないため、このメソッドは失敗します。
あなたはより良い方法がありますか?ありがとう:)
最初の方法では、メッセージAのサブスクリプションを表すために列と値4を使用できます。次の方法を使用する場合は、データベーステーブルをどのように設計する必要がありますか? – Felix