java中如何减少,如果其他的编码方式

  介绍

这篇文章主要介绍了java中如何减少,如果其他的编码方式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强>方式一:提前返回

首先展示一段代码示例:

if  (condition1), {   if 才能;(condition2), {   ,,,return  getSomething ();   ,,},{else    ,,,return  0;   ,,}   },{else    return 才能;0;   }

修改后的代码如下:

//这里最好对这个国旗所判断的逻辑补充注释进行描述   boolean  flag =, ! condition1  | |, (condition1 ,,, ! condition2)   如果(国旗),{   ,return  0;   }      if  (condition1 ,,, condition2), {   return 才能getSomething ();   }

如果存在已知在某些条件下,需要返回固定值的逻辑,可以将这部分逻辑抽取为一个独立的if - else block ,并置于其他if - else块的前面,当符合该特定条件时,直接提前return 固定值。这种方式最直接的效果就是降低if - else的嵌套数量。

<强>方式二:使用三目运算符

先上例子,这里以一个业务场景为例:

查询某条评论的图片URL列表(如果有,评论的图片URL列表以JSON数组字符串格式保存在评论表中)

修改前的代码如下:

Comment  Comment =, getById (commentId);      if  (Objects.isNull(评论),{   throw 才能;new  RuntimeException(“评论不存在或已被删除“);   }      String  imgListStr =, comment.getImgList ();   如果(StringUtils.isEmpty (imgListStr)), {   return 才能;零;   }      return  JSON.parseArray (imgListStr, String.class);

修改后:

Comment  Comment =, getById (commentId);      if  (Objects.isNull(评论),{   throw 才能;new  RuntimeException(“评论不存在或已被删除“);   }      String  imgListStr =, comment.getImgList ();   return  StringUtils.isEmpty (imgListStr)), ?   null 才能:JSON.parseArray (imgListStr, String.class);

<强>方式三:使用断言断言

在编写业务代码过程中,如果需要对某些特定的条件进行判断,且当条件不满足时需要抛出异常。对于这种场景,除了使用上面三目运算符的示例当中的如果方式,还可以通过使用Spring框架给我们提供的Assert 工具类进行。
其中常用的API有:

<李>

isTrue(布尔表达式字符串消息):当表达式==false时,会抛出异常,异常的消息则为第二个入参;

<李>

空白notNull (@Nullable对象对象、字符串消息):同上,当对象==null时,会抛出异常;

<李>

空白notEmpty (@Nullable Collection<?比;收集、字符串消息):同上,当集合对象为零或者集合元素为空时,会抛出异常。

<李>

.....

还有其他较多方法,可以直接看源码的解析,当然实际上isTrue()已经够用了,如果需要更加的语义化,可以使用对应的API。

修改前代码:

if  (Objects.isNull(评论)),{   throw 才能;new  RuntimeException(“评论不存在或已被删除“);   }

修改后代码:

, Assert.isTrue (Objects.nonNull(评论),“评论不存在或已被删除“);   ,Assert.notNull(评论,“评论不存在或已被删除“);

目前维护工具方法只能抛出单一一种异常. lang。IllegalArgumentException,如果需要自定义所抛出的异常,则该方式不适用。

<强>方式四:使用可选

可选的是java8的新特性,相当于一个对象的容器,主要用于对象的null值校验,以及在进行校验后可链式地进行后续操作,如:抛出异常,零替换等,。

其中我个人比较常用的几个方法为:

<李>

静态& lt; T>OptionalofNullable (T值):使用可选将对象进行包裹;

<李>

T orElse (T):,中可选的对象为null时,返回入参的对象。

<李>

T orElseGet (Supplier<?T>延伸;其他):中可选的对象为null时,返回供应商提供的值;

<李>

T orElseThrow (Supplier<?X>延伸;exceptionSupplier):,中可选的对象为null时,抛出供应商提供的自定义异常

代码示例:

Message  message1 =, Optional.ofNullable (getById(消息id))   .orElseThrow才能((),→,new  RuntimeException(“消息不存在!“));      Message  message2 =, Optional.ofNullable (getById(消息id))   .orElse才能(new 消息());      Message  message3 =, Optional.ofNullable (getById(消息id))   .orElseGet才能(信息::新);

java中如何减少,如果其他的编码方式