簡單工具類
寫做初衷:因爲平常開發常常須要用到不少工具類,常常根據需求本身寫也比較麻煩
網上好了一些工具類例如commom.lang3或者hutool或者Jodd這樣的開源工具,可是
發現他們之中雖然設計不錯,可是若是我想要使用,就必需要引入依賴而且去維護依賴,有些
甚至會有存在版本編譯不經過問題,故此想要寫做一個每一個類均可以做爲獨立工具類使用
每一個使用者只須要複製該類,到任何項目當中均可以使用,因此須要尊從如下兩個原則才能
作到.在此誠邀各位大佬參與.能夠把各自用過的工具,整合成只依賴JDK,每一個類都可以單獨
使用的工具.每一個人當遇到業務需求須要使用的時候,只須要到這裏單獨拷貝一個便可使用.
拋棄傳統的須要引入依賴的煩惱.讓你們一塊兒來解決你所面臨的業務問題吧!java
介紹
聽從兩大原則web
- 1.毫不依賴JDK之外的源碼
- 2.犧牲代碼複用性,每一個類都必須是單獨的組件,毫不互相引用,作到徹底解耦
package *; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; /** * @program: simple_tools * @description: 判斷工具類 * @author: ChenWenLong * @create: 2019-10-17 14:42 **/ public class AssertUtil { /** * 功能描述: * 〈判斷數組是否爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:43 */ public static <T> boolean isEmpty(T[] obj) { return null == obj || 0 == obj.length; } /** * 功能描述: * 〈判斷數組是否不爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:43 */ public static <T> boolean isNotEmpty(T[] obj) { return !isEmpty(obj); } /** * 功能描述: * 〈判斷對象是否爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:44 */ public static boolean isEmpty(Object obj) { return null == obj; } /** * 功能描述: * 〈判斷對象是否不爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:45 */ public static boolean isNotEmpty(Object obj) { return !isEmpty(obj); } /** * 功能描述: * 〈字符串是否爲空〉 * * @params : [str] * @return : boolean * @author : cwl * @date : 2019/10/17 14:48 */ public static boolean isEmpty(String str) { return null == str || "".equals(str); } /** * 功能描述: * 〈字符串是否不爲空〉 * * @params : [str] * @return : boolean * @author : cwl * @date : 2019/10/17 14:48 */ public static boolean isNotEmpty(String str) { return !isEmpty(str); } /** * 功能描述: * 〈判斷集合是否爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:49 */ public static boolean isEmpty(Collection obj) { return null == obj || obj.isEmpty(); } /** * 功能描述: * 〈判斷集合是否不爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:49 */ public static boolean isNotEmpty(Collection obj) { return !isEmpty(obj); } /** * 功能描述: * 〈判斷map集合是否爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:50 */ public static boolean isEmpty(Map obj) { return null == obj || obj.isEmpty(); } /** * 功能描述: * 〈判斷map集合是否不爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 14:50 */ public static boolean isNotEmpty(Map obj) { return !isEmpty(obj); } /** * 功能描述: * 〈char數值是不是數字〉 * * @params : [charValue] * @return : boolean * @author : cwl * @date : 2019/10/17 14:55 */ public static boolean charIsNumb(int charValue) { return charValue >= 48 && charValue <= 57 || charValue >= 96 && charValue <= 105; } /** * 功能描述: * 〈判斷字符串是不是純數字浮點類型〉 * * @params : [s] * @return : boolean * @author : cwl * @date : 2019/10/17 14:57 */ public static boolean isFloat(String s) { if(!(s.indexOf(".") > -1)){ return false; } char[] chars = s.toCharArray(); boolean flag = true; for (char aChar : chars) { if(aChar != 46){ if(!(aChar >= 48 && aChar <= 57 || aChar >= 96 && aChar <= 105)){ flag = false; break; } } } return flag; } /** * 功能描述: * 〈非純數字浮點類型〉 * * @params : [s] * @return : boolean * @author : cwl * @date : 2019/10/17 15:15 */ public static boolean isNotFloat(String s) { return !isFloat(s); } /** * 功能描述: * 〈字符串是不是數字〉 * * @params : [str] * @return : boolean * @author : cwl * @date : 2019/10/17 15:08 */ public static boolean isNumb(String str) { if (isEmpty((Object)str)) { return false; } else { char[] chr = str.toCharArray(); for(int i = 0; i < chr.length; ++i) { if (chr[i] < '0' || chr[i] > '9') { return false; } } return true; } } /** * 功能描述: * 〈判斷字符串是否不是數字〉 * * @params : [str] * @return : boolean * @author : cwl * @date : 2019/10/17 15:15 */ public static boolean isNotNumb(String str) { return !isNumb(str); } /** * 功能描述: * 〈判斷字符串是否有長度,並自定義異常信息〉 * * @params : [str, msg] * @return : void * @author : cwl * @date : 2019/10/17 15:09 */ public static void hasLength(String str, String msg) { if (str == null || str.length() < 1) { throw new RuntimeException(msg); } } /** * 功能描述: * 〈自定義參數校驗異常〉 * * @params : [msg, obj] * @return : void * @author : cwl * @date : 2019/10/17 15:24 */ public static void paramCheck(String msg,Object...obj) { for (Object o : obj) { // 參數異常 if(isEmpty(o)){ throw new RuntimeException(msg); } } } /** * 功能描述: * 〈可變參數,判斷是否全部對象都爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 15:10 */ public static boolean isAllEmpty(Object... obj) { Object[] var1 = obj; int var2 = obj.length; for(int var3 = 0; var3 < var2; ++var3) { Object o = var1[var3]; if (!isEmpty(o)) { return false; } } return true; } /** * 功能描述: * 〈可變參數-判斷只要有任意一個對象爲空,則爲true〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 15:11 */ public static boolean isAnyEmpty(Object... obj) { Object[] var1 = obj; int var2 = obj.length; for(int var3 = 0; var3 < var2; ++var3) { Object o = var1[var3]; if (isEmpty(o)) { return true; } } return false; } /** * 功能描述: * 〈可變參數 -判斷是否全部參數都不爲空〉 * * @params : [obj] * @return : boolean * @author : cwl * @date : 2019/10/17 15:11 */ public static boolean isAllNotEmpty(Object... obj) { Object[] var1 = obj; int var2 = obj.length; for(int var3 = 0; var3 < var2; ++var3) { Object o = var1[var3]; if (isEmpty(o)) { return false; } } return true; } /** * 功能描述: * 〈判斷是否兩個對象相等〉 * * @params : [o1, o2] * @return : boolean * @author : cwl * @date : 2019/10/17 15:12 */ public static boolean isEqual(Object o1, Object o2) { if (o1 == null) { return o2 == null; } else if (o2 == null) { return false; } else if (o1.getClass().isArray()) { for(int i = 0; i < ((Object[])((Object[])o1)).length; ++i) { if (!isEqual(((Object[])((Object[])o1))[i], ((Object[])((Object[])o2))[i])) { return false; } } return true; } else if (Collection.class.isAssignableFrom(o1.getClass())) { Iterator i1 = ((Collection)o1).iterator(); Iterator i2 = ((Collection)o2).iterator(); if (((Collection)o1).size() != ((Collection)o2).size()) { return false; } else { for(int i = 0; i < ((Collection)o1).size(); ++i) { if (!isEqual(i1.next(), i2.next())) { return false; } } return true; } } else if (!Map.class.isAssignableFrom(o1.getClass())) { return o1.equals(o2); } else { Map<Object, Object> m1 = (Map)o1; Map<Object, Object> m2 = (Map)o2; if (m1.size() != m2.size()) { return false; } else if (!isEqual(m1.keySet(), m2.keySet())) { return false; } else { Iterator var4 = m1.entrySet().iterator(); Map.Entry o; do { if (!var4.hasNext()) { return true; } o = (Map.Entry)var4.next(); } while(m2.containsKey(o.getKey()) && isEqual(o.getValue(), m2.get(o.getKey()))); return false; } } } /** * 功能描述: * 〈判斷兩個對象是否不相等〉 * * @params : [o1, o2] * @return : boolean * @author : cwl * @date : 2019/10/17 15:13 */ public static boolean isNotEqual(Object o1, Object o2) { return !isEqual(o1,o2); } /** * 功能描述: * 〈比較兩個集合是否相等〉 * * @params : [l1, l2] * @return : boolean * @author : cwl * @date : 2019/10/17 14:46 */ public static boolean compare(List<Comparable> l1, List<Comparable> l2) { if (l1 != null && !l1.isEmpty()) { if (l2 != null && !l2.isEmpty()) { Collections.sort(l1); Collections.sort(l2); if (l1.size() != l2.size()) { return false; } else { for(int i = 0; i < l1.size(); ++i) { if (((Comparable)l1.get(i)).compareTo(l2.get(i)) != 0) { return false; } } return true; } } else { return false; } } else { return l2 == null || l2.isEmpty(); } } }
本文同步分享在 博客「cwl_java」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。數組