java判空工具类
StringUtils.isEmpty(request.getUsername()) //字符串判断是否为空
BeanUtils.copyProperties(request,example); //拷贝工具类
CollectionUtils.isEmpty(); //判断list是否为空
Lambda 表达式转list和map的方法以及判断Map是否含有值
//分别转成List和map
XXXSevice.XXX().stream.map(DO::get).conllect(conllectors.tolist);
XXXSevice.XXX().stream.conllect(conllectors.tomMap(DO::get,DO::get));
Map.containsKey(key值) //检查map里面包含
//过滤idList
resultList = resultList.stream().filter(item -> supplyInfoIdList.contains(item.getId())).collect(Collectors.toList());
fastJson使用
//fastjson处理
// 实现java对象与Json字符串之间的转化
// 1. Person对象与json之间的转换
//1.1 将Person对象转成json
Person p = new Person(10, "张三");
Object obj = JSONArray.toJSON(p);
String json = obj.toString();
System.out.println("将Person对象转成json:" + json);
//1.2 将json字符串转成Person对象
Person person = JSONArray.parseObject(json, Person.class);
System.out.println("person.getName():" + person.getName());
Optional使用
return Optional.ofNullable(service.A()).orElse(service.B())
如果service.A()返回非null,最终结果是service.A(),然而service.B()这个方法也被执行了。
这样肯定就不对了,如果service.B()中还有插入数据库或者RPC这种操作,问题就大了。
刚开始还以为是什么执行顺序问题,区别是orElse(T)无论前面Optional容器是null还是non-null,都会执行orElse里的方法,orElseGet(Supplier)并不会.
如果service无异常抛出的情况下,Optional使用orElse或者orElseGet的返回结果都是一样的
BigDecimal的操作
BigDecimal bignum1 = new BigDecimal("10");
BigDecimal bignum2 = new BigDecimal("5");
BigDecimal bignum3 = null;
//加法
bignum3 = bignum1.add(bignum2);
System.out.println("和 是:" + bignum3);
//减法
bignum3 = bignum1.subtract(bignum2);
System.out.println("差 是:" + bignum3);
//乘法
bignum3 = bignum1.multiply(bignum2);
System.out.println("积 是:" + bignum3);
//除法
bignum3 = bignum1.divide(bignum2);
System.out.println("商 是:" + bignum3);