int flags的妙用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了int flags的妙用相关的知识,希望对你有一定的参考价值。
参考技术A 很多android源码中有一个int flags;定义形式的变量,还有与之相对应的一系列常量,这种flag分类方式应该可以用在任何语言中。int flags定义包含的flag,可能有多个,这是需求。
而一个int型的值(当然也可以是其他类型,原理一样)在java里表示4 byte也就是32 bit,除去符号位剩下31个标志位可以表示31个单独的flag,他们相或可以生成更多的flags值。
用1进行左移操作可以方便生成不同的flag如下:
public static final int FLAG1= 1<<0;
public static final int FLAG2 = 1<<2;
。。。
public static final int FLAG31 = 1<<31;
相或如
public static final int FLAGa = FLAG3|FLAG5|FLAG8 ;
当需要判断时:
flags = FLAGX1 |FLAGX2;
//若flags的相或item包含FLAGX 则与其相与刚好得到FLAGX
if((flags&FLAGX ) == FLAGX )
//说明包含FLAGX 属性
简单封装成函数:
public boolean hasFeature(int feature)
if((flags&feature) == feature) return true;
return false;
以上是关于int flags的妙用的主要内容,如果未能解决你的问题,请参考以下文章