作用
- 安全取值,增加穩定性
- 規避繁瑣的顯式try-catch處理
代碼
1
2
3
4
5
6
7
8
9
10
11
12
| /**
* 安全的獲取值的信息,其過程中發生異常會自動處理,返回null
* getValueAction 取值操作,可能發生異常
* */
inline fun <T> getValueSafely(getValueAction: () -> T?): T? {
return try {
getValueAction()
} catch(t: Throwable) {
t.printStackTrace()
null
}
}
|
驗證一番
1
2
3
4
5
6
7
8
9
10
11
12
| fun testGetValueSafely() {
val value1 = getValueSafely {
1/ 0
}
val value2 = getValueSafely {
1 + 1
}
value1.printLog()
value2.printLog()
}
|
執行日誌
1
2
| 03-21 16:55:05.649 5072 5072 I KotlinTips: null
03-21 16:55:05.649 5072 5072 I KotlinTips: 2
|
關於 KotlinTips
KotlinTips是一個關於Kotlin編碼技巧的一個系列,希望通過輕量簡單的形式介紹能對大家有幫助。