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集合图谱: