在java中创建权限位掩码 [英] create a permission bit mask in java
本文介绍了在java中创建权限位掩码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想做这样的事情:
public enum Permissions
{
CanBlah1,
CanBlah2,
CanBlah3
}
byte[] userPerm = Permissions.CanBlah1 | Permissions.CanBlah2;
// check permssions
//
if(userPerm && Permissions.CanBlah1 == Permissions.CanBlah1)
{
// do something
}
你能用Java做这件事吗? (我来自ac#background)
Can you do this in Java like that? (I'm coming from a c# background)
推荐答案
您可以使用 EnumSet轻松完成
You can easily do it using EnumSet
import java.util.EnumSet;
import static java.util.EnumSet.of;
import static java.util.EnumSet.range;
import static so.User.Permissions.CanBlah1;
import static so.User.Permissions.CanBlah2;
import static so.User.Permissions.CanBlah3;
public class User {
public enum Permissions {
CanBlah1,
CanBlah2,
CanBlah3
}
public static void main(String[] args) throws Exception {
EnumSet<Permissions> userPerms = of(CanBlah1, CanBlah2);
System.out.println(userPerms.contains(CanBlah1)); //true
System.out.println(userPerms.contains(CanBlah2)); //true
System.out.println(userPerms.contains(CanBlah3)); //false
System.out.println(userPerms.containsAll(of(CanBlah1, CanBlah3))); //false
System.out.println(userPerms.containsAll(range(CanBlah1, CanBlah2))); //true
System.out.println(userPerms.containsAll(range(CanBlah1, CanBlah3))); //false
}
}
这篇关于在java中创建权限位掩码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文