Java 條件表示式的優化
編碼的過程中,可能會遇到一個很長的表示式,比如下面這種:
ParameterUtil.getInteger(request.getParameter("total"))
這種表示式的值可能為 null,但我們需要在他 != null 的時候取該值,而在 == null 的時候,自定義一個預設值,根據以往的經驗,可能會這樣寫:
Integer total = ParameterUtil.getInteger(request.getParameter("total"));
total = total != null ? total : 0;
但是,Java 這種方式始終不夠優雅,從 PHP 的條件表示式語法來看,當一個表示式的值 == true 時,則返回該值,否則,返回自定義的預設值,比如:
ParameterUtil.getInteger(request.getParameter("total")) ?: 0;
其實,Java 也可以做到,JDK 8 提供的 Optional 類滿足你的一切幻想:
Optional.ofNullable(ParameterUtil.getInteger(request.getParameter("total"))).orElse(0)
原理也很簡單,只是一層包裝而已:
public T orElse(T other) {
return value != null ? value : other;
}
相關文章
- Oracle OCP(06):通用函式和條件表示式Oracle函式
- CMake 生成器表示式---條件表示式和邏輯運算子
- MySQL 針對 like 條件的優化MySql優化
- 通過新增條件優化SQL優化SQL
- 正規表示式效能優化的探究優化
- 優化 JS 條件語句的 5 個技巧優化JS
- Java中Lambda表示式的進化之路Java
- 蝦扯蛋之條件判斷的極致優化優化
- 條件函式函式
- 程式碼優化-多型代替IF條件判斷優化多型
- 「譯」編寫更好的 JavaScript 條件式和匹配條件的技巧JavaScript
- 我去,這麼簡單的條件表示式竟然也有這麼多坑
- impala 條件函式函式
- C#動態查詢:巧用Expression組合多條件表示式C#Express
- 『忘了再學』Shell基礎 — 28、AWK中條件表示式說明
- Java的Lambda表示式Java
- java-queryWrapper條件JavaAPP
- JavaScript(ES6)邏輯判斷條件優化JavaScript優化
- 支援向量機(非線性模型)——改寫優化目標函式和限制條件模型優化函式
- Laravel-orWhere條件式Laravel
- Java 中的 Lambda 表示式Java
- 外連線有 OR 關聯條件只能走 NL優化優化
- Java | Lambda表示式Java
- Lambda表示式(Java)Java
- Java Lambda表示式Java
- react 也就這麼回事 02 —— JSX 插值表示式、條件渲染以及列表渲染ReactJS
- [java基礎] 之 表示式和運算子的優先順序Java
- 自律,不是讓你優秀的充分條件!
- 優秀CRM系統的四個條件
- MySQL函式-條件判斷函式MySql函式
- Java多型實現的必要條件Java多型
- java中的正規表示式Java
- Java8的Lambda表示式Java
- Java中Lambda表示式的使用Java
- Spring入門(六):條件化的beanSpringBean
- Java 8 Lambda 表示式Java
- java 8 lambda表示式Java
- 正規表示式(java)Java