原文:java優化if和switch,使用map代替條件判斷

碰到個場景: 傳入兩個參數,通過對這兩個參數的判斷,返回一個對應的值。但是這兩個參數的種類有很多,所以如果用if或者switch判斷的話,代碼會很多重復,也會很長,而且if使用過多復雜度太高,打包也不容易通過。 最后決定使用map,用過key值的匹配實現條件判斷的效果,傳入兩個參數進行key匹配,返回對應的value值 優化前:使用switch, 代碼客觀性比使用if好一些,但是重復代碼太多了,邏 ...

2022-04-13 15:45 0 613 推薦指數:

查看詳情

Java Switch Case 條件判斷

JavaSwitch Case 語句,可以理解為分支例子 假設打麻將有四個人 編號為 1 2 3 4 對應名字為 張三,李四,王五,趙六 數據結構 例子代碼 輸出 break 表示退出,當滿足某個case的時候,停止下方其他case。 上面的執行流程為 如果不寫 ...

Sat Feb 22 18:40:00 CST 2020 0 6849
java條件判斷語句switch小結

  java的流程控制語句中,選擇判斷語句有兩種if...else和switch。相對而言,switch在實際使用過程中需要注意的地方較多,有時會由於忘記它的一些語法特征,對其語法產生誤解,從而導致一些錯誤。這里通過查閱資料和編碼實踐對switch做出一些小結。 一、switch的基本語法 ...

Wed Jan 03 23:59:00 CST 2018 0 8802
小酌重構系列[14]——使用多態代替條件判斷

概述 有時候你可能會在條件判斷中,根據不同的對象類型(通常是基類的一系列子類,或接口的一系列實現),提供相應的邏輯和算法。當出現大量類型檢查和判斷時,if else(或switch)語句的體積會比較臃腫,這無疑降低了代碼的可讀性。另外,if else(或switch)本身就是一個“變化點 ...

Mon May 16 01:08:00 CST 2016 2 2499
switch 中可以使用字符串當判斷條件

switch語句能否作用在byte上,能否作用在long上,能否作用在String上? 在switch(expr1)中,expr1只能是一個整數表達式或者枚舉常量(更大字體),整數表達式可以是int基本類型或Integer包裝類型,由於,byte,short,char都可以隱含轉換 ...

Fri Oct 21 07:19:00 CST 2016 0 12608
使用反射+策略模式代替項目中大量的switch case判斷

我這里的業務場景是根據消息類型將離線消息存入mongoDB不同的collection中。其中就涉及到大量的分支判斷,為了增強代碼的可讀性和可維護性,對之前的代碼進行了重構。 先對比一下使用反射+策略模式前后的代碼: 重構前: 重構后: 我們可以看到重構前的代碼充斥着大量的分支 ...

Mon Sep 11 23:13:00 CST 2017 5 3396
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM