Pre*_*arR 0 java bitwise-operators
我正在开发一个 java web 应用程序,在一个数据库表中,我有一列类型为 number。但该列用于存储多个值。(即许可如下)
问题
像这样的东西
我不明白我们可以通过按位运算符来做到这一点。任何实现这一点的代码都会很棒。
我认为您的意思是按位运算和二进制文字。
在您的情况下,您将不得不使用位掩码(固定版本,谢谢@Paul Boddington 和@Jaroslaw Pawlak):
final int MASK_NOTHING = 1;
final int MASK_VIEW = 0b10;
final int MASK_ADD = 0b100;
final int MASK_EDIT = 0b1000;
final int MASK_INSERT = 0b10000;
final int MASK_DELETE = 0b100000;
final int MASK_ALL = 0b1000000;
int column = 0; //YOUR DATA HERE
if((column & MASK_NOTHING) > 0)
{
}
if((column & MASK_VIEW) > 0)
{
}
Run Code Online (Sandbox Code Playgroud)
请注意:所有可能的位标志都可以独立设置......所以要么避免一次设置多个,要么处理所有这些情况
二进制文字:https : //docs.oracle.com/javase/7/docs/technotes/guides/language/binary-literals.html运营商:https : //docs.oracle.com/javase/tutorial/java/nutsandbolts/ op3.html