Java工具集-判斷(AssertUtil)

簡單工具類

寫做初衷:因爲平常開發常常須要用到不少工具類,常常根據需求本身寫也比較麻煩
網上好了一些工具類例如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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。數組

相關文章
相關標籤/搜索