Java常用工具类:

一、判断是否为空

1、判断自定义对象、集合、数组、String为空
import org.springframework.util.ObjectUtils;

@Test
    public void ObjectUnitTest(){
        PcModule pcModule = null;  // PcModule自定义对象
        System.out.println(ObjectUtils.isEmpty(pcModule));// true
        List list = Lists.newArrayList();
        System.out.println(ObjectUtils.isEmpty(list));// true
        Map map = Maps.newHashMap();
        System.out.println(ObjectUtils.isEmpty(map));// true
        String s = "";
        System.out.println(ObjectUtils.isEmpty(s));// true
        int array [] = new int[0]; // int array [] = {}
        System.out.println(ObjectUtils.isEmpty(array));// true
    }

ObjectUtils源码:

public static boolean isEmpty(Object obj) {
		if (obj == null) {return true;}
		if (obj.getClass().isArray()) {return Array.getLength(obj) == 0;}
		if (obj instanceof CharSequence) {return ((CharSequence) obj).length() == 0;}
		if (obj instanceof Collection) {return ((Collection) obj).isEmpty();}
		if (obj instanceof Map) {return ((Map) obj).isEmpty();}
		return false;
	}

2、判断String为空:
import org.apache.commons.lang3.StringUtils;
2.1 isEmpty()

@Test
    public void StringUnitsTest(){
        String st = "";
        String st1 = null;
        System.out.println(StringUtils.isEmpty(st)); // true
        System.out.println(StringUtils.isEmpty(st1)); // true
    }
     * StringUtils.isEmpty(null)      = true
     * StringUtils.isEmpty("")        = true
     * StringUtils.isEmpty(" ")       = false //区别于isBlank()
     * StringUtils.isEmpty("bob")     = false
     * StringUtils.isEmpty("  bob  ") = false

StringUtils源码

public static boolean isEmpty(final CharSequence cs) {
        return cs == null || cs.length() == 0;
    }
    public static boolean isNotEmpty(final CharSequence cs) {
        return !isEmpty(cs);
    }

2.2 isBlank()

* StringUtils.isBlank(null)      = true
     * StringUtils.isBlank("")        = true
     * StringUtils.isBlank(" ")       = true
     * StringUtils.isBlank("bob")     = false
     * StringUtils.isBlank("  bob  ") = false

源码:

public static boolean isBlank(final CharSequence cs) {
        int strLen;
        if (cs == null || (strLen = cs.length()) == 0) {
            return true;
        }
        for (int i = 0; i < strLen; i++) {
            if (Character.isWhitespace(cs.charAt(i)) == false) {
                return false;
            }
        }
        return true;
    }

3、判断集合为空:
import org.apache.commons.collections.CollectionUtils;
支持List、Set、Queue, 不支持Map
源码:

public static boolean isEmpty(Collection coll) {
        return (coll == null || coll.isEmpty());
    }
    public static boolean isNotEmpty(Collection coll) {
        return !CollectionUtils.isEmpty(coll);
    }

import org.springframework.util.CollectionUtils;
支持List、Map、Set、Queue
源码:

public static boolean isEmpty(Collection<?> collection) {
		return (collection == null || collection.isEmpty());
	}
	public static boolean isEmpty(Map<?, ?> map) {
		return (map == null || map.isEmpty());
	}
@Test
    public void CollectionUtilsTest(){
        List<String> ls = Lists.newArrayList();
        System.out.println(org.springframework.util.CollectionUtils.isEmpty(ls));  // true
        System.out.println(org.apache.commons.collections.CollectionUtils.isEmpty(ls)); // true
        System.out.println(org.apache.commons.collections.CollectionUtils.isNotEmpty(ls)); // false
    }

二、对象复制

import org.springframework.beans.BeanUtils;

public static void copyProperties(Object source, Object target) {
        BeanUtils.copyProperties(source, target);
    }

    public static <T> List<T> convert(List<? extends Object> sourceList, Class<T> targetClazz) {
        List<T> ret = Lists.newArrayList();
        for (Object source : sourceList) {
            try {
                T target = targetClazz.newInstance();
                copyProperties(source, target);
                ret.add(target);
            } catch (InstantiationException | IllegalAccessException e) {
                LOGGER.error(e.getMessage(), e);
                throw new RuntimeException("copyList error.");
            }

        }
        return ret;
    }

    public static Object map2Object(Map<String, Object> map, Class<?> beanClass) {
        if (map == null) return null;
        Object obj = null;
        try {
            obj = beanClass.newInstance();
            Field[] fields = obj.getClass().getDeclaredFields();
            for (Field f : fields) {
                int mod = f.getModifiers();
                if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
                    continue;
                }
                f.setAccessible(true);
                if (map.containsKey(f.getName())) {
                    f.set(obj, map.get(f.getName()));
                }
            }
        } catch (Exception e) {
            LOGGER.error(e.getMessage(), e);
        }
        return obj;
    }

三、日期转化

1、格式转化
import java.text.SimpleDateFormat;

public class DbcpDateUtils {

    public static String format(Date date) {
        return format2SecondString(date);
    }

    public static String format2DayString(Date date) {
        return format(date, "yyyy-MM-dd");
    }

    public static String format2ChineseDate(Date date) {
        return format(date, "yyyy年MM月dd日");
    }

    public static String format2SecondString(Date date) {
        return format(date, "yyyy-MM-dd hh:mm:ss");
    }

    public static String format(Date date, String format) {
        SimpleDateFormat formater = new SimpleDateFormat(format);
        return formater.format(date);
    }
}

2、计算日期
import org.apache.commons.lang3.time.DateUtils;
当前日期加(减)几年、月、日、时、分、秒

public static Date addYears(final Date date, final int amount) {
        return add(date, Calendar.YEAR, amount);
    }
   public static Date addMonths(final Date date, final int amount) {
        return add(date, Calendar.MONTH, amount);
    }
    ...

附件:Java集合图谱:


java 判断list元素类型 java判断list是否为空工具类_java 判断list元素类型