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的妙用的主要内容,如果未能解决你的问题,请参考以下文章

flutter Set集合妙用

mysql path妙用

for循环中i--的妙用 及 两变量互换数值的问题

Python中逗号的妙用

字节数组的妙用

字节数组的妙用