- public class TestMask {
- public static void main(String[] args) {
- FileManager fm = new FileManager();
- System.out.println("read : " + fm.canRead());
- System.out.println("write : " + fm.canWrite());
- System.out.println("remove : " + fm.canRemove());
- System.out.println("-----------------");
- fm.setCanRead(true);
- System.out.println("can read....");
- System.out.println("read : " + fm.canRead());
- System.out.println("write : " + fm.canWrite());
- System.out.println("remove : " + fm.canRemove());
- System.out.println("-----------------");
- fm.setCanWrite(true);
- System.out.println("can read write....");
- System.out.println("read : " + fm.canRead());
- System.out.println("write : " + fm.canWrite());
- System.out.println("remove : " + fm.canRemove());
- System.out.println("-----------------");
- fm.setCanRemove(true);
- System.out.println("can read write remove....");
- System.out.println("read : " + fm.canRead());
- System.out.println("write : " + fm.canWrite());
- System.out.println("remove : " + fm.canRemove());
- System.out.println("-----------------");
- fm.setCanRemove(false);
- System.out.println("can read write....");
- System.out.println("read : " + fm.canRead());
- System.out.println("write : " + fm.canWrite());
- System.out.println("remove : " + fm.canRemove());
- System.out.println("-----------------");
- fm.setCanWrite(false);
- System.out.println("can read....");
- System.out.println("read : " + fm.canRead());
- System.out.println("write : " + fm.canWrite());
- System.out.println("remove : " + fm.canRemove());
- System.out.println("-----------------");
- }
- }
- class FileManager {
- private static final int CAN_READ_MASK = 0x00000001;
- private static final int CAN_WRITE_MASK = 0x00000010;
- private static final int CAN_REMOVE_MASK = 0x00000100;
- private int mPrivateFlags;
- public void setCanRead(boolean canRead) {
- if(canRead) {
- mPrivateFlags |= CAN_READ_MASK;
- }else {
- mPrivateFlags &= ~CAN_READ_MASK;
- // or mPrivateFlags ^= CAN_READ_MASK;
- }
- }
- public boolean canRead() {
- return (mPrivateFlags & CAN_READ_MASK) == CAN_READ_MASK;
- }
- public void setCanWrite(boolean canWrite) {
- if(canWrite) {
- mPrivateFlags |= CAN_WRITE_MASK;
- }else {
- mPrivateFlags &= ~CAN_WRITE_MASK;
- }
- }
- public boolean canWrite() {
- return (mPrivateFlags & CAN_WRITE_MASK) == CAN_WRITE_MASK;
- }
- public void setCanRemove(boolean canRemove) {
- if(canRemove) {
- mPrivateFlags |= CAN_REMOVE_MASK;
- }else {
- mPrivateFlags &= ~CAN_REMOVE_MASK;
- }
- }
- public boolean canRemove() {
- return (mPrivateFlags & CAN_REMOVE_MASK) == CAN_REMOVE_MASK;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1101201614398.html
来源: http://www.codesnippet.cn/detail/1101201614398.html