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;      }  }