2019獨角獸企業重金招聘Python工程師標準>>>
某種場景需要,一個事物 有多種狀態并列存在的時候,或者權限,我們可以使用 |,&,~ 來處理,具體代碼如下:??
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));}
}
?