java开发小技巧—二进制进阶—状态位
2017-06-15 14:34
232 查看
/**
* 事物同时具有多种状态工具
* 二进制,每一位代表一种状态,0或1,采用&,|,^ 计算
*/
public class StateUtils {
public final static long USER_START_STATE=1;//初始状态
public final static long USER_BASE_INFO_STATE=2<<1;//填写基本信息
public final static long USER_PHONE_STATE=2<<2;//绑定手机号
//.....
//与:同为1则1
//是否具有某种状态,states:原有状态, value:要判断状态
public static boolean hasState(long states,long value){
return (states & value)!=0;
}
//或,有1则1
//添加状态,states:原有的状态, value:要添加的状态
public static long addState(long states,long value){
if(hasState(states,value)){
return states;
}
return states | value;
}
//异或,相同为0,不同为1
//移除状态,states:原有的状态, value:要移除的状态
public static long removeState(long states,long value){
if(!hasState(states,value)){
return states;
}
return states ^ value;
}
}
* 事物同时具有多种状态工具
* 二进制,每一位代表一种状态,0或1,采用&,|,^ 计算
*/
public class StateUtils {
public final static long USER_START_STATE=1;//初始状态
public final static long USER_BASE_INFO_STATE=2<<1;//填写基本信息
public final static long USER_PHONE_STATE=2<<2;//绑定手机号
//.....
//与:同为1则1
//是否具有某种状态,states:原有状态, value:要判断状态
public static boolean hasState(long states,long value){
return (states & value)!=0;
}
//或,有1则1
//添加状态,states:原有的状态, value:要添加的状态
public static long addState(long states,long value){
if(hasState(states,value)){
return states;
}
return states | value;
}
//异或,相同为0,不同为1
//移除状态,states:原有的状态, value:要移除的状态
public static long removeState(long states,long value){
if(!hasState(states,value)){
return states;
}
return states ^ value;
}
}
相关文章推荐
- 使用二进制代表状态(JAVA开发巧用二进制)
- Java Applet编程小技巧之文字显示-Java基础-Java-编程开发
- [小技巧]使用Eclipse做Java开发时,JDK1.6居然也不认识enum和泛型的解决办法
- Java开发中的23种设计模式之二十:状态模式(State)
- JAVA开发职业进阶
- Java开发中的一些小技巧
- [原创]Linux下进行Java开发的一些小技巧
- java开发个人总结笔记 小技巧
- java程序员菜鸟进阶(十)Extjs4常用功能(一)――extjs开发环境的配置和表单的使用
- JavaWeb开发会话与状态管理
- JAVA进阶学习-java开发环境配置
- Java Web2.0项目开发进阶---Hibernate 对标注的支持
- Java开发小技巧 - 用“秒表”记时
- java开发小技巧(一)
- 我的Java开发学习之旅------>二进制、八进制、十进制、十六进制之间转换
- Java Web开发进阶培训,大家的交流学习平台
- Java开发小技巧总结
- Java开发小技巧
- Java开发中的一些小技巧
- 【JavaWeb】(10)微信公众号开发进阶