在项目中很多数据处理比较繁琐,为了增加代码的可读性,我们就会想到工具类,下面是对工具类的汇总。(持续更新中。。。。)
一、BeanUtils:对Java Bean进行各种操作,复制对象,属性
包:org.apache.commons.beanutils
@Data
public class User {
private String username;
private String password;
}
1.读取和设置属性值等
User user = new User();
BeanUtils.setProperty(user, "username", "li");
BeanUtils.getProperty(user, "username");
2. map跟对象之间的转换
// bean->map
Map<String, String> map = BeanUtils.describe(user);
// map->bean
BeanUtils.populate(user, map);
3.复制对象属性值(两个对象之间相同的属性之间值可复制)
// 如果设置的属性是其他的引用 类型数据,那么这时候必须要注册一个类型转换器。
ConvertUtils.register(new DateConverter(null), java.util.Date.class);
ConvertUtils.register(new BigDecimalConverter(null), java.math.BigDecimal.class);
BeanUtils.copyProperties(被赋值的对象,被复制的对象);
4.克隆对象属性,属性值
User user = new User('Xia', "123456");
User user1 = (User)BeanUtils.cloneBean(user );
二、StringUtils :操作对象是 Java.lang.String 类型的对象,该工具类中有130多个方法,我只举例较常用的
1.StringUtils.isEmpty 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0
实例:
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("abc") = false
StringUtils.isEmpty(" abc") = false
2.StringUtils.isNotEmpty 判断某字符串是否非空,等于 !isEmpty(String str)
实例:
StringUtils.isNotEmpty(null) = false
StringUtils.isNotEmpty("") = false
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty(" ") = true
StringUtils.isNotEmpty("abc") = true
StringUtils.isNotEmpty(" abc") = true
3.StringUtils.isBlank 判断某字符串是否为空或长度为0或由空白符(whitespace) 构成
实例:
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符
StringUtils.isBlank() //均识为空白符
StringUtils.isBlank("\b") = false //"\b"为单词边界符
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
4.StringUtils.isNotBlank 判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str)
实例:
StringUtils.isNotBlank(null) = false
StringUtils.isNotBlank("") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank(" ") = false
StringUtils.isNotBlank("\t \n \f \r") = false
StringUtils.isNotBlank("\b") = true
StringUtils.isNotBlank("bob") = true
StringUtils.isNotBlank(" bob ") = true
5.StringUtils.trim 去掉字符串两端的控制符(control characters, char <= 32) , 如果输入为 null 则返回null
实例:
StringUtils.trim(null) = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim(" \b \t \n \f \r ") = ""
StringUtils.trim(" \n\tss \b") = "ss"
StringUtils.trim(" d d dd ") = "d d dd"
StringUtils.trim("dd ") = "dd"
StringUtils.trim(" dd ") = "dd"
三、Collections 扩展Java集合框架的操作
包:org.apache.commons.collections
交并差等操作
// 判空
CollectionUtils.isEmpty(collA);
CollectionUtils.isNotEmpty(collA);
// 交集
CollectionUtils.retainAll(collA, collB);
// 并集
CollectionUtils.union(collA, collB);
// 差集
CollectionUtils.subtract(collA, collB);
// 判等
CollectionUtils.isEqualCollection(collA, collB);