我经常用的九个工具包
collections、collectionUtils、Lists、Objects、BooleanUtils、StringUtils、Assert、ClassUtils、、HttpoStatus。
1. Collections
java.util包下的Collections类,该类主要用于操作集合或者返回集合。
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
Collections.sort(list);//升序 //执行结果[1, 2, 3]
Collections.reverse(list);//降序 //执行结果[3, 2, 1]
Collections.max(list);//获取最大值//执行结果3
Collections.min(list);//获取最小值//执行结果1
Collections.emptyList();//返回空集合
2、collectionUtils
org.apache.commons.collections包下的CollectionUtils工具类。对集合操作,除了前面说的Collections工具类之后,CollectionUtils工具类也非常常用。
List<Integer> list = new ArrayList<>();
list.add(2);
list.add(1);
list.add(3);
CollectionUtils.isEmpty(list);//集合为空 返回true 不为空返回false
CollectionUtils.isNotEmpty(list);//集合不为空返回true 为空返回false
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(4);
CollectionUtils.union(list, list2);//获取并集执行结果[1, 2, 3, 4]
CollectionUtils.intersection(list, list2);//获取交集执行结果[2]
3、Lists
com.google.common.collect包下的集合工具
//快速初始化集合
List<Integer> list = Lists.newArrayList(1, 2, 3);//执行结果[1, 2, 3]
//分页
List<Integer> list = Lists.newArrayList(1, 2, 3, 4, 5);
List<List<Integer>> partitionList = Lists.partition(list, 2);//执行结果[[1, 2], [3, 4], [5]]
//流处理
List<String> list = Lists.newArrayList("a","b","c");
List<String> transformList = Lists.transform(list, x -> x.toUpperCase());//执行结果['A','B','C']
//颠倒顺序
List<Integer> list = Lists.newArrayList(3,2,1);
List<Integer> reverseList = Lists.reverse(list);//执行结果[1, 2, 3]
4. Objects
在jdk7之后,提供了Objects工具类,我们可以通过它操作对象
Objects.isNull()//对象为空返回true 不为空返回false
Objects.nonNull()//对象不为空返回true 为空返回false
Objects.requireNonNull(integer1, "参数不能为空");//参数为空的时候返回,参数不能为空
Objects.equals(,)//两个对象想则返回ture 不同则返回false(两个值一样数据类型不一样也会返回false)
5.StringUtils
org.apache.commons.lang3包下的StringUtils工具类,给我们提供了非常丰富的选择
//分隔字符串,分隔字符串是常见需求,如果直接使用String类的split方法,就可能会出现空指针异常
String str1 = null;
StringUtils.split(str1,",");//返回null
str1.split(",");//报指针异常
StringUtils.isNumeric(str1)//判断它是否为纯数字 执行结果是数字则人会true不是则返回false(0.33这样的也会返回false)
List<String> list = Lists.newArrayList("a", "b", "c");
StringUtils.join(list, ",")//将某个集合的内容,拼接成一个字符串 返回结果a,b,c
6、断言集合是否为空
断言参数是否空,如果不满足条件,则直接抛异常。
Assert.notNull(str, "str不能为空");
Assert.isNull(str, "str不是空");
//如果不满足条件就会抛出IllegalArgumentException异常。
7.ClassUtils
spring的org.springframework.util包下的ClassUtils类里包含了类和对象相关的很多非常实用的方法。
//获取某个对象的所有接口
Class<?>[] allInterfaces = ClassUtils.getAllInterfaces(new User());
//获取某个类的包名
String packageName = ClassUtils.getPackageName(User.class);
//判断某个类是否内部类
ClassUtils.isInnerClass(User.class)
//判断对象是否代理对象
ClassUtils.isCglibProxy(new User())
8.BeanUtils
spring给我们提供了一个JavaBean的工具类,它在org.springframework.beans包下面
//拷贝对象
User user1 = new User();
user1.setName("aa");
user1.setAddress("bb");
User user2 = new User();
BeanUtils.copyProperties(user1, user2);
//获取方法
Method method = ReflectionUtils.findMethod(User.class, "getName");
9.HttpStatus
很多时候,我们会在代码中定义http的返回码,比如:接口正常返回200,异常返回500,接口找不到返回404,接口不可用返回502等。其实org.springframework.http包下的HttpStatus枚举定义好了,直接拿来用就可以了