Guava API学习之Preconditions高雅的查验参数ITeye - AG环亚娱乐

Guava API学习之Preconditions高雅的查验参数ITeye

2019年03月06日10时41分47秒 | 作者: 浦和 | 标签: 参数,查看,功用 | 浏览: 927

public static void getPerson(int age,String name){ if (age 0 null != name name.isEmpty() != true) { System.out.println("a person age:"+age+",name:"+name); }else { System.out.println("参数输入有误!"); }

 

成果:

 

a person age:8,name:peida
参数输入有误!
参数输入有误!
参数输入有误!

 

阐明:参数验证,咱们每次都要增加if句子来做判别, 重复的工作会做好屡次。getPerson办法只要2个参数,验证规矩也不是很杂乱,假如参数过度,验证规矩杂乱后,上面代码的可读性都会很差的,复用性就更谈不上了。

Guava类库中供给了一个作参数查看的东西类Preconditions类, 该类能够大大地简化咱们代码中关于参数的预判别和处理,让咱们对办法输入参数的验证完成起来愈加简略高雅,下面咱们看看Preconditions类的运用实例:

 @Test
 public void test(){
 //getPersonByPrecondition(8,"peida");
 getPersonByPrecondition(-9,"peida");
 // getPersonByPrecondition(8,"");
 //getPersonByPrecondition(8,null); 
 public static void getPersonByPrecondition(int age,String name){
 Preconditions.checkNotNull(name, "neme为null");
 Preconditions.checkArgument(name.length() 0, "neme为\\");
 Preconditions.checkArgument(age 0, "age 有必要大于0");
 System.out.println("a person age:"+age+",neme:"+name);
}

 

Preconditions里边的办法:

1 .checkArgument(boolean) :
功用描绘:查看boolean是否为真。 用作办法中查看参数
失利时抛出的反常类型: IllegalArgumentException

2.checkNotNull(T):     
功用描绘:查看value不为null, 直接回来value;
失利时抛出的反常类型:NullPointerException

3.checkState(boolean):
功用描绘:查看目标的一些状况,不依赖办法参数。 例如, Iterator能够用来next是否在remove之前被调用。
失利时抛出的反常类型:IllegalStateException

4.checkElementIndex(int index, int size):
功用描绘:查看index是否为在一个长度为size的list, string或array合法的规模。 index的规模区间是[0, size)(包括0不包括size)。无需直接传入list, string或array, 只需传入巨细。回来index。  
失利时抛出的反常类型:IndexOutOfBoundsException


5.checkPositionIndex(int index, int size):
功用描绘:查看方位index是否为在一个长度为size的list, string或array合法的规模。 index的规模区间是[0, size)(包括0不包括size)。无需直接传入list, string或array, 只需传入巨细。回来index。
失利时抛出的反常类型:IndexOutOfBoundsException

6.checkPositionIndexes(int start, int end, int size):
功用描绘:查看[start, end)是一个长度为size的list, string或array合法的规模子集。伴随着错误信息。
失利时抛出的反常类型:IndexOutOfBoundsException

 

下面一个比较有用实例:

@Test
 public void test2() throws Exception{
 getPersonByPrecondition(8, "sungang");
 // result : a person age:8,neme:sungang
 try {
 getPersonByPrecondition(-9, "sunang");
 } catch (Exception e) {
 System.out.println(e.getMessage());
 // result :age 有必要大于0
 try {
 getPersonByPrecondition(8,"");
 } catch (Exception e) {
 System.out.println(e.getMessage());
 // result : neme为
 try {
 getPersonByPrecondition(8,null);
 } catch (Exception e) {
 System.out.println(e.getMessage());
 //result : neme为null                          
			
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表AG环亚娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章