当前位置: 首页 > 面试题库 >

在Java中创建权限位掩码

柏高洁
2023-03-14
问题内容

我想做这样的事情:

public enum Permissions
{
    CanBlah1,
    CanBlah2,
    CanBlah3
}

byte[] userPerm = Permissions.CanBlah1 | Permissions.CanBlah2;

// check permssions
//
if(userPerm && Permissions.CanBlah1 == Permissions.CanBlah1)
{
      // do something
}

您可以用Java这样做吗?(我来自ac#背景)


问题答案:

您可以轻松地使用 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位掩码控制权限与(&)或(|)非(~)、>的介绍,包括了Java位掩码控制权限与(&)或(|)非(~)、>的介绍的使用技巧和注意事项,需要的朋友参考一下 1. java 位掩码 java 位掩码,在java开发中很少有场景会用到掩码,但是当系统中需要判断某个对象是否有 某些权限时,可以通过位掩码来做。 位掩码 主要通过位运算,例如与(&)、非(~)、或(|)、异或(^)、移位

  • 问题内容: 我的陈述书遇到一些权限问题。 当我登录数据库并执行简单的导出命令时,例如: 我得到回应: 但是,当我简单地写: 该文件被写入目录。我查看了mysql似乎定义读取和写入权限的文件,但我真的不知道如何修改它。 如何授予自己将mysql表导出到我喜欢的任何目录的权限? 问题答案: 问题是目录权限。mysqld不以current_user身份运行。将mysqld用户添加到对目标目录具有写权限的

  • 问题内容: 在Apple有关与C API进行交互的文档中,他们描述了将带有标记的C样式枚举作为Swift枚举导入的方式。这是有道理的,并且由于Swift中的枚举很容易作为值类型提供,因此很容易看到如何创建我们自己的枚举。 再往下,它说了关于标记C样式的选项: Swift还会导入标有宏的选项。而选项的行为类似于进口枚举,选项还可以支持一些位操作,如,和。在Objective- C中,您表示一个空的选

  • 创建目录权限 如果你想创建一个目录并授予777权限,你需要怎么做?查看Go的API文档我们可以这样写。 源文件为mkdir.go。 package main import ( "fmt" "os" ) func main() { err := os.MkdirAll("/tmp/gotest/", 0777) if err != nil { panic(er

  • 我可以使用对实体具有权限的Spring SecurityACL,但我想知道如何测试用户是否具有对类的“创建”(第2位)权限。 比如: 有人能帮我吗? 提前谢谢

  • 我试图创建一个类似于权限插件的东西,但我的问题是我不知道如何给一个玩家权限,例如< code>aplugin.chat和< code>aplugin.color,当我只给他权限< code>aplugin时。*。当然,如果许可是注册的,这没有问题,我可以从< code>Bukkit.getPluginManager()检查每个许可。getPermissions()。没有注册怎么解决?在Bungee