Java工具集-二進位狀態工具類
- 2019 年 10 月 26 日
- 筆記
簡單工具類
寫作初衷:由於日常開發經常需要用到很多工具類,經常根據需求自己寫也比較麻煩 網上好了一些工具類例如commom.lang3或者hutool或者Jodd這樣的開源工具,但是 發現他們之中雖然設計不錯,但是如果我想要使用,就必須要引入依賴並且去維護依賴,有些 甚至會有存在版本編譯不通過問題,故此想要寫作一個每個類都可以作為獨立工具類使用 每個使用者只需要複製該類,到任何項目當中都可以使用,所以需要尊從以下兩個原則才能 做到.在此誠邀各位大佬參與.可以把各自用過的工具,整合成只依賴JDK,每個類都能夠單獨 使用的工具.每個人當遇到業務需求需要使用的時候,只需要到這裡單獨拷貝一個即可使用. 拋棄傳統的需要引入依賴的煩惱.讓大家一起來解決你所面臨的業務問題吧!
介紹
遵從兩大原則
- 1.絕不依賴JDK以外的源碼
- 2.犧牲程式碼復用性,每個類都必須是單獨的組件,絕不互相引用,做到完全解耦
package *; /** * @program: simple_tools * @description: 二進位狀態工具類 * @author: Mr.chen * @create: 2019-10-19 09:13 **/ public class BitStateUtil { // 用戶默認狀態 public final static Long STATE_DEFAULT = 1L << 0; // 用戶狀態1 public final static Long STATE_ONE = 1L << 1; // 用戶狀態2 public final static Long STATE_TWO = 1L << 2; // 用戶狀態3 public final static Long STATE_THREE = 1L << 3; /** * @param states 所有狀態值 * @param value 需要判斷狀態值 * @return 是否存在 */ public static boolean hasState(long states, long value) { return (states & value) != 0; } /** * @param states 已有狀態值 * @param value 需要添加狀態值 * @return 新的狀態值 */ public static long addState(long states, long value) { if (hasState(states, value)) { return states; } return (states | value); } /** * @param states 已有狀態值 * @param value 需要刪除狀態值 * @return 新的狀態值 */ public static long removeState(long states, long value) { if (!hasState(states, value)) { return states; } return states ^ value; } }