位运算的运用-权限控制:add,query,modify,del

本文介绍了一种使用位运算进行权限控制的方法,通过定义不同的位表示不同的操作权限(如查询、插入、更新和删除),并通过位运算实现权限的添加、删除和检查。示例代码展示了如何设置和修改权限,以及如何检查特定权限是否存在。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

位运算的运用-权限控制:add,query,modify,del

public class Permission {

    private static final int ALLOW_SELECT = 1<<0;//0001
    private static final int ALLOW_INSERT = 1<<1;//0010
    private static final int ALLOW_UPDATE = 1<<2;//0100
    private static final int ALLOW_DELETE = 1<<3;//1000

    //当前的权限状态
    private int flag;

    public void setPermission(int permission){
        flag = permission;
    }


    /*增加权限,可以一项或者多项*/
    public void addPermission(int permission){
        flag = flag|permission;
    }

    /*删除权限,可以一项或者多项*/
    public void disablePermission(int permission){
        flag = flag&~permission;
    }

    /*是否拥有某些权限*/
    public boolean isAllowed(int permission){
        return (flag&permission)==permission;
    }

    /*是否不拥有某些权限*/
    public boolean isNotAllowed(int permission){
        return (flag&permission)==0;
    }


    public static void main(String[] args) {
		int flag = 15;//1111
		Permission permission = new Permission();
		permission.setPermission(flag);
		permission.disablePermission(ALLOW_DELETE|ALLOW_INSERT);
		System.out.println("ALLOW_SELECT="+permission.isAllowed(ALLOW_SELECT));
		System.out.println("ALLOW_INSERT="+permission.isAllowed(ALLOW_INSERT));
		System.out.println("ALLOW_UPDATE="+permission.isAllowed(ALLOW_UPDATE));
		System.out.println("ALLOW_DELETE="+permission.isAllowed(ALLOW_DELETE));
	}
}

结果:

ALLOW_SELECT=true
ALLOW_INSERT=false
ALLOW_UPDATE=true
ALLOW_DELETE=false

jdk里的NIO里的OP_WRITE、OP_READ等也是用的这种思想。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值