欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

java中減少ifelse編碼習慣的方法有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹“java中減少ifelse編碼習慣的方法有哪些”,在日常操作中,相信很多人在java中減少ifelse編碼習慣的方法有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java中減少ifelse編碼習慣的方法有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

成都創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目網(wǎng)站制作、成都網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元秦淮做網(wǎng)站,已為上家服務,為秦淮各地企業(yè)和個人服務,聯(lián)系電話:028-86922220

方式一 : 提前return

首先展示一段代碼示例 :

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

修改后的代碼如下 :

//這里好對這個flag所判斷的邏輯補充注釋進行描述boolean flag = !condition1 || (condition1 && !condition2)if(flag) { return 0;}if (condition1 && condition2) {  return getSomething();}

如果存在已知在某些條件下 , 需要返回固定值的邏輯 , 可以將這部分邏輯抽取為一個獨立的 if-else block , 并置于其他if-else block的前面 , 當符合該特定條件時 , 直接提前 return 固定值 . 這種方式最直接的效果就是降低if-else的嵌套數(shù)量 .

方式二 : 使用三目運算符

先上例子 , 這里以一個業(yè)務場景為例 :

查詢某條評論的圖片URL列表 (如果有 , 評論的圖片url列表以JSON數(shù)組字符串格式保存在評論表中)

修改前的代碼如下 :

Comment comment = getById(commentId);if (Objects.isNull(comment)) {  throw new RuntimeException("評論不存在或已被刪除");}String imgListStr = comment.getImgList();if(StringUtils.isEmpty(imgListStr)) {  return null;}return JSON.parseArray(imgListStr, String.class);

修改后 :

Comment comment = getById(commentId);if (Objects.isNull(comment)) {  throw new RuntimeException("評論不存在或已被刪除");}String imgListStr = comment.getImgList();return StringUtils.isEmpty(imgListStr)) ?  null : JSON.parseArray(imgListStr, String.class);

方式三 : 使用Assert斷言

在編寫業(yè)務代碼過程中 , 如果需要對某些特定的條件進行判斷 , 且當條件不滿足時需要拋出異常 . 對于這種場景 , 除了使用上面三目運算符的示例當中的if方式 , 還可以通過使用Spring Framework 給我們提供的 Assert 工具類進行 .其中常用的API 有 :

isTrue(boolean expression , String message) : 當expressio == false時 , 會拋出異常 , 異常的message則為第二個入?yún)?;  void notNull(@Nullable Object object, String message) : 同上 , 當object == null 時 , 會拋出異常;  void notEmpty(@Nullable Collection<?> collection, String message) : 同上 , 當集合對象為null或者集合元素為空時 , 會拋出異常 .  .....

還有其他較多方法 , 可以直接看源碼的解析 , 當然實際上isTrue() 已經(jīng)夠用了 , 如果需要更加的語義化 , 可以使用對應的API .

修改前代碼 :

if (Objects.isNull(comment)) {  throw new RuntimeException("評論不存在或已被刪除");}

修改后代碼 :

Assert.isTrue(Objects.nonNull(comment),"評論不存在或已被刪除"); Assert.notNull(comment,"評論不存在或已被刪除");

目前Assert工具方法只能拋出單一一種異常 java.lang.IllegalArgumentException , 如果需要自定義所拋出的異常 , 則該方式不適用 .

方式四 : 使用Optional

Optional是 java8 的新特性 , 相當于一個對象的容器 , 主要用于對象的null值校驗 , 以及在進行校驗后可鏈式地進行后續(xù)操作 , 如 : 拋出異常、null替換 等 .

其中我個人比較常用的幾個方法為 :

static <T> Optional<T> ofNullable(T value) : 使用Optional 將對象進行包裹 ;  T orElse(T other) : Optional中的對象為null時 ,返回入?yún)⒌膶ο?.  T orElseGet(Supplier<? extends T> other) : Optional中的對象為null時 , 返回Supplier 提供的值 ;  T orElseThrow(Supplier<? extends X> exceptionSupplier) : Optional中的對象為null時 , 拋出supplier提供的自定義異常

代碼示例 :

Message message1 = Optional.ofNullable(getById(messageId))  .orElseThrow(() -> new RuntimeException("消息不存在!"));Message message2 = Optional.ofNullable(getById(messageId))  .orElse(new Message());Message message3 = Optional.ofNullable(getById(messageId))  .orElseGet(Message::new);

由于我日常需要的進行空值判斷的比較多的場景是從數(shù)據(jù)庫查詢數(shù)據(jù)完畢時 , 需要查詢結(jié)果進行空值判斷 . 由于我所在的公司使用的持久層框架是mybatis , 不像Spirng Boot 2.x 默認版本的JPA 那樣DAO層方法支持返回值為Optional , 所以這里如果需要使用Optional , 只能手動去使用上面列舉的第一個方法對查詢結(jié)果進行包裝 .

到此,關于“java中減少ifelse編碼習慣的方法有哪些”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

文章題目:java中減少ifelse編碼習慣的方法有哪些-創(chuàng)新互聯(lián)
當前地址:http://aaarwkj.com/article8/hsiip.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、軟件開發(fā)、網(wǎng)站內(nèi)鏈、商城網(wǎng)站定制開發(fā)、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
小黄片视频免费在线播放| 国产又黄又爽不卡的视频| 涩久久悠悠一区二区三区| 精品亚洲欧美日韩国产| 亚洲综合色婷婷七月丁香| 日韩精品综合成人欧美| 亚洲黄色成人在线观看| 日韩一区二区精品网站| 久久精品一区二区熟女| 国产熟女真实乱精品视频| 国产一区二区三区婷婷| 中国女人内射69xx| 热久久青草精品欧美一区| 免费在线观看97视频| 激情久久五月激情婷婷| 午夜视频在线看一区免费| 日本精品一级免费在线| 久久91亚洲精品久久91| 国产成人大片中文字幕在线 | 亚洲激情av在线观看| 亚洲国产欧美日韩综合| 96热久久这里只有精品| av天天堂网在线播放| 日本高清久久一区二区三区| 欧美精品国产一区二区免费| 日韩人妻精品久久免费| 欧美日韩综合精品无人区| 亚洲免费黄色大片网站| 久久人妻蜜桃一区二区三区| 亚洲av精二区三区四区| 蜜桃国产精品视频网站| 日本97久久久久久精品| 韩国久久久久三级成人| 国产三级视频在线观看视频| 成年人收看黄色一二级片| 国产欧美日韩精品av| 亚洲日本韩国美女二区| 亚洲三级伦理在线视频| 日本中文字幕黄色人妻| 国产精品人妻在线av| 亚洲成人日韩欧美在线|