常用工具类分享01

guava工具小记

@author lvxk

@date: 2021/12/02

@desc:只截取部分经典方法api讲解,因为JDK8新特性部分功能已足够强大,guava流式及函数式相对于理解起来较难,Io没有apache的工具类好用,并发没有juc的类强大,故省略


1.使用


  com.google.guava
  guava
  18.0



  junit
  junit
  4.12


2.校验参数

使用Preconditions类提供的常用方法进行校验参数

1.1-checkArgument

参数可以放一个表达式,表达式不成立会抛出一个参数异常

/**
 * test checkArgument
 */
@Test
public void test01(){
  Object o = new Object();
  Preconditions.checkArgument(Objects.isNull(o));
}

适用场景:校验一些请求参数是否合法,或者是返回对象的属性是否与预期一致,不一致则抛出异常

举例:

//适用场景 
// 请求参数一些条件校验,其它对象参数同理
if(ObjReq.getField()!=infactValue){
   throw e;
}
//改造后
Preconditions.checkArgument(ObjReq.getField()!=infactValue);

框架默认抛出IllegalArgumentException 可自定义工具类抛出对应业务异常


1.2-checkNotNull(T)

参数可以放置任何泛型的对象,如果对象不为空,则返回该对象,对象如果为空,抛出NullPointerException

/**
* test checkNotNull
*/
@Test
public void test02(){
  String noNullstr = "testStr";
  String nullStr = null;
  String emptyStr = "";
  Object obj1 = new Object();
  Object obj2 = null;
  //校验非空字符串
  String p1 = Preconditions.checkNotNull(noNullstr);
  //校验null字符串 抛异常
  String p2 = Preconditions.checkNotNull(noNullstr);
  //校验空字符串 不抛异常
  String p3 = Preconditions.checkNotNull(emptyStr);
  //校验非空对象
  Object p4 = Preconditions.checkNotNull(obj1);
  //校验空对象 抛异常
  Object p5 = Preconditions.checkNotNull(obj2);
}

框架方法默认不能对String空字符串判空,可以自己写个工具类进行封装然后抛出对应业务异常,但是本人不推荐这么用,有点过于啰嗦

这个方法校验非字符串对象不为空比较好用,比如判断Dao查询出来的对象不为空


1.3-Objects.equal(obj1,obj2)

这个方法是com.google.common.base.Objects区别与jdk8的java.util.Objects,这两个功能类似

/**
* test com.google.common.base.Objects.equal
*/
@Test
public void test03(){
  String str1 = null;
  String str2 = "";
  String str3 = "1";
  String str4 = "1";
  //false
  boolean b1 = com.google.common.base.Objects.equal(str1, str2);
  //false
  boolean b2 = com.google.common.base.Objects.equal(str2, str3);
  //true
  boolean b3 = com.google.common.base.Objects.equal(str3, str4);
}

一般可以用来比较两个String是否相等,或者两个包装类是否相等


3.集合

待完善


4.缓存

待完善


5.字符串处理(非常好用)

待完善


6.反射

待完善


完.

你可能感兴趣的:(常用工具类分享01)