巧用位运算存状态

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

某种场景需要,一个事物 有多种状态并列存在的时候,或者权限,我们可以使用 |,&,~ 来处理,具体代码如下:  

package com.example.demo;/*** 权限状态处理*/
public class StatusUtil {/*** 判断状态是否开启* @param flag* @param status* @return bool*/public static boolean isEnable(int flag, int status) {return (flag & status) == status;}/*** 判断状态是否关闭* @param flag* @param status* @return bool*/public static boolean isDisable(int flag, int status) {return (flag & status) == 0;}/*** 判断是否只有这个状态开启* @param flag* @param status* @return*/public static boolean isOnlyEnable(int flag, int status) {return flag == status;}/*** 添加状态* @param flag* @param status* @return*/public static int addStatus(int flag, int status) {return flag |= status;}/*** 扣除状态* @param flag* @param status* @return*/public static int deductStatus(int flag, int status) {return flag & ~status;}
}
package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {// 初始public static final int init = 1 << 0;// 权限1public static final int power1 = 1 << 1;// 权限2public static final int power2 = 1 << 2;// 权限3public static final int power3 = 1 << 3;//权限4public static final int power4 = 1 << 4;public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);int status=init;//添加权限1status= StatusUtil.addStatus(status,power1);//判断是否具有权限1System.out.println( StatusUtil.isEnable(status,power1));//判断是否具有权限2System.out.println( StatusUtil.isEnable(status,power2));//添加权限2status= StatusUtil.addStatus(status,power2);//判断是否具有权限2System.out.println( StatusUtil.isEnable(status,power2));//解除权限1status=  StatusUtil.deductStatus(status,power1);//判断是否具有权限1System.out.println( StatusUtil.isEnable(status,power1));//判断是否具有权限2System.out.println( StatusUtil.isEnable(status,power2));}
}

 

转载于:https://my.oschina.net/ToFlySeif/blog/2873595

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python怎么做项目_听说你没有python项目可做,我教你个方法

原标题&#xff1a;听说你没有python项目可做&#xff0c;我教你个方法 学习了一段时间的Python&#xff0c;最近出现了“饥荒”&#xff0c;感觉需要多看些代码&#xff0c;多学习学习别人做些什么&#xff0c;但却不知道做点什么来进行练习。 说到看代码&#xff0c;我就想到…

Linux系统CPU相关信息查询

Linux系统CPU相关信息查询 作者&#xff1a;尹正杰 版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。 一.lscpu常用参数介绍 1>.查看帮助信息 [rootnode105 ~]# lscpu -h-a, –all: 包含上线和下线的cpu的数量&#xff0c;此选项只能与选…

excel下拉让函数参数部分不变

原理 使用相对引用就会变&#xff0c;bai使用绝对引用du就不变 A1是相对引用&#xff0c;上下拉公式的时候会zhi变成A2,A3…… $A$1是行列绝对引用dao&#xff0c;上下拉公式的时候不会变化 $A1&#xff0c;是行绝对引用&#xff0c;上下拉公式的时候会变化&#xff0c;$A2&am…

select * 排除字段_编写 SQL 的排除联接

有两个表&#xff0c;就叫作源表和目标表吧。它们有一个相同的字段&#xff0c;通过该字段可以把源表和目标表关联在一起&#xff0c;我们希望从源表中检索到的记录里的关联字段的值没有存在目标表中。举个例子&#xff0c;源表 dept&#xff0c;目标表 emp&#xff0c;获取 de…

JS中调用bignumber处理高精度小数运算

ignumber.js用于数字精度要求较高的计算。 bignumber.js源码地址&#xff1a;https://github.com/MikeMcl/bignumber.js 1.下载bignumber.js。 下载地址&#xff1a;https://github.com/MikeMcl/bignumber.js/releases 2.引入js。 3.示例 html: <div><label>数1&am…

centos8安装搜狗输入法_搜狗拼音输入法去广告版

搜狗输入法是搜狗公司2006年6月推出的一款汉字输入法工具。与传统输入法不同&#xff0c;搜狗输入法是第一款为互联网而生的输入法——它通过搜索引擎技术&#xff0c;将互联网变成了一个巨大的“活”词库。应该有许多人电脑上都装了吧&#xff0c;不过一般下载的版本天天弹广告…

Project查看资源分配情况

选择 资源图表&#xff0c;点击 格式&#xff0c;在图表里选择

webbrowser实现input tab事件_如何合理构造一个Uploader工具类(设计到实现)

作者&#xff1a;Chaser (本文来自作者投稿) 原文地址&#xff1a;https://juejin.im/post/5e5badce51882549652d55c2源码地址&#xff1a;https://github.com/impeiran/Blog/tree/master/uploader前言本文将带你基于ES6的面向对象&#xff0c;脱离框架使用原生JS&#xff…

小达人点读笔的任我贴贴纸怎么使用?

小达人点读笔是一款高性能、高容量点读笔。其自身的开放性、共享性、传播性让可读书籍及音频资源真正的达到了海量且优质有用。 下面我们来认识一下标配中任我贴上的贴纸&#xff1a; 智能贴 用于已经布有二维码的有声图书的封面&#xff0c;比如律动英语&#xff0c;成长一线&…

vscode必备插件_10个必备的Visual Studio Code (VS code)插件

我基本上每天都用vs code&#xff0c;我喜欢的小巧&#xff0c;开源&#xff0c;免费并且非常强大。尤其它非常多的插件可以免费使用。这里我把经常用插件介绍给大家&#xff0c;希望大家留言讨论我把VS code 插件分两类&#xff0c;一类是处理可视化的&#xff0c;比如说颜色&…

软考官方教材:信息系统项目管理师教程(第三版)

2020年下半年信息系统项目管理师考试官方教材将继续使用清华大学出版社出版的信息系统项目管理师教程第3版&#xff08;特别注意&#xff0c;有某些辅导资料也打着信息系统项目管理师教程第3版的旗号&#xff0c;各位考生一定要看准官方指定教材是由全国计算机专业技术资格考试…

centos挂载windows共享目录

2019独角兽企业重金招聘Python工程师标准>>> 在windows中创建一个共享文件夹记住这个网络路径&#xff0c; 在centos上新建文件夹/mnt/MyShare $> mkdir /mnt/MyShare挂载 username用户名.password登录密码 $> Sudo mount -t cifs -o username用户名,pass…

博阅likebook alita专用pdf制作

适合博阅likebook alita带手写的。 先上效果图&#xff0c;左边是正文&#xff0c;右边有留白可以写读书笔记 这样做有什么好处&#xff1f; pdf从阅读器里复制出来&#xff0c;在电脑打开&#xff0c;笔记也会有。笔记是直接记录在pdf上的&#xff0c;相当于pdf上的批注。 …

esc键没反应_有机人名反应——Brown 硼氢化反应(Brown Hydroboration)

Brown 硼氢化反应&#xff08;Brown Hydroboration&#xff09;反应机理链接&#xff1a;http://chem.kingdraw.cn/Shortlink?id20200624161301Brown硼氢化反应&#xff0c;是指乙硼烷在醚类溶液中离解成的甲硼烷以B-H键与烯烃、炔烃的不饱和键加成&#xff0c;生成有机硼化合…

修改Navicat数据库自动备份目录

1.右键连接&#xff0c;选择“编辑连接” 2. 选择“高级”&#xff0c;设置位置

python图形界面编程库_Python支持哪些图形界面的第三方库

Python支持哪些图形界面的第三方库 发布时间&#xff1a;2020-11-09 10:37:56 来源&#xff1a;亿速云 阅读&#xff1a;58 作者&#xff1a;小新 这篇文章给大家分享的是有关Python支持哪些图形界面的第三方库的内容。小编觉得挺实用的&#xff0c;因此分享给大家做个参考。一…

成为中国特色项目经理,走上人生巅峰

今天是秋分&#xff0c;写在项目经理6周年的总结 落叶知秋&#xff0c;情谊如酒&#xff0c;风渐凉时有喜无忧&#xff1b; 岁月流走&#xff0c;蓦然回首&#xff0c;一声问候醇绵依旧&#xff1b; 有情相守&#xff0c;不离左右&#xff0c;含笑送出这份问候。 -----------…

项目经理到底要不要懂技术?

不难发现&#xff0c;高薪项目经理岗位&#xff0c;往往对项目经理有技术要求。为什么会这样&#xff1f; 存在即合理&#xff0c;一定是现实中需要&#xff0c;项目实施过程中有必要。 想起了自己以前有次面试&#xff0c;二面是公司总经理&#xff0c;总经理说&#xff1a;…

git 可视化工具_Git的基本使用(二)

通过前文Git的基本使用(一)的学习&#xff0c;相信大家对如何将iOS项目通过Git传到GitHub账户上有了一个基本的了解&#xff0c;其过程是相对繁琐和容易出错的。本文将告诉大家借助工具来帮助我们实现这些操作&#xff0c;并对前文进行进一步补充。一、两个软件Visual Studio C…

小米8配哪个版本的MIUI?

小米8之前我是忠实的魅粉&#xff0c;魅族手机用过M8&#xff0c;MX3&#xff0c;note5&#xff0c;MX6 pro。 魅族真的是被联发科的cpu坑了&#xff0c;一核有难&#xff0c;八核围观。 入手小米8&#xff0c;miui是9&#xff0c;一路跟着系统自动更新&#xff0c;更新到了12。…