Srping Utils包的使用

    在写应用的时候经常设计到对List的操作问题,比如个从Dao里取得数据,返回一个List,当该list为空,或者size == 0的时候回去抛异常,或者做一些其它业务逻辑,我见过好多项目中都会在开始建立的时候写一大堆的Utils类,其中就包或对String,List等的操作,我觉得完全没有必要自己写这些了,spring util包已经能够满足我们的需求了.
    org.springframework.util

    CollectionUtils.java

    下边是我认为操作集合最常用不过的两个方法了,代码很简单清爽:
   
    //可以传入List 等实现了Collection接口的集合进去
    public static boolean isEmpty(Collection collection) {
        return (collection == null || collection.isEmpty());
    }

    //重载了isEmpty方法,可以传实现了Map接口的集合进去,比如:HashMap
    public static boolean isEmpty(Map map) {
        return (map == null || map.isEmpty());
    }
    

   
    StringUtils.java

    同样的,字符串的常用操作也是不可少的:

   
    //判断字符序列是否有长度
    public static boolean hasLength(CharSequence str) {
        return (str != null && str.length() > 0);
    }

    //判断字符串是否有长度,复用了上边的方法
    public static boolean hasLength(String str) {
        return hasLength((CharSequence) str);
    }
    

    这里的CharSequence是JDK里String所实现的一个接口:
    通过查看JDK6.0的源码可以看到:
   
    public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence
    

    CharSequence 有什么样的方法呢:继续跟进去看:
   
    public interface CharSequence {

        //返回字符序列的长度
        int length();

        //返回字符序列中指定位置的字符
        char charAt(int index);

        //按照参数start和end返回指定位置的子 字符序列
        CharSequence subSequence(int start, int end);

        //这个不用说了吧
        public String toString();

    }
    

    判断了字符串是否有长度还不够,万一是一个长度为10的空格组成的字符串呢,在做一些应用开发的时候,这样的数据往往是没有意义的,Spring照样也有这样的方法,继续往下看:
    还是在StringUtils.java中:
   
    public static boolean hasText(CharSequence str) {
        //这里首先保证字符
        if (!hasLength(str)) {
            return false;
        }
        int strLen = str.length();
        for (int i = 0; i < strLen; i++) {
            if (!Character.isWhitespace(str.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    //重载了上边的方法,参数换为String类型,复用上边方法
    public static boolean hasText(String str) {
        return hasText((CharSequence) str);
    }
    

    有时候处理数据又不希望在字符串中出现空格,跟上边方法相反的可以判断字符序列中是否有空格:
   
    //判断字符序列中是否有空格
    public static boolean containsWhitespace(CharSequence str) {
        if (!hasLength(str)) {
            return false;
        }
        int strLen = str.length();
        for (int i = 0; i < strLen; i++) {
            //这里的判断刚好跟上边那个方法相反
            if (Character.isWhitespace(str.charAt(i))) {
                return true;
            }
        }
        return false;
    }

    //同样的重载上边这个方法
    public static boolean containsWhitespace(String str) {
        return containsWhitespace((CharSequence) str);
    }
    

    还有类似好多的常用方法,其实都能用到,除此以为还有ObjectUtils、ClassUtils等等,有心去的朋友去看一下Spring2.5.6的源代码,没必要再自己重新写Utils包了,软件的目标是复用,已经有的轮子就没有必要再发明一次了,希望我的文章能帮助你,本人水平有限,如有不对欢迎大家拍砖。

你可能感兴趣的:(java,DAO,spring,jdk)