1 回答

TA貢獻1829條經驗 獲得超4個贊
可能您可以通過方法轉換String?并Optional<T>應用前綴連接Optional.map,最后使用orElse("")...提取結果值
這是解決問題的一種功能性方法,但您顯然可以通過 應用于返回的值的if或三元或elvis 運算符orEmpty來解決它。
如果你喜歡函數式的方法,你可以試試這個例子,它同時顯示了 Optional 和 T? --> 可選用例:
fun <T> toOptional(value : T?) : Optional<T> {
if(value == null) {
return Optional.empty()
}
return Optional.of(value)
}
val opt:Optional<String> = Optional.empty()
println(opt.map { x -> "PREFIX/$x" }.orElse(""))
val opt2:Optional<String> = Optional.of("link")
println(opt2.map { x -> "PREFIX/$x" }.orElse(""))
var str : String? = null
println(toOptional(str).map { x -> "PREFIX/$x" }.orElse(""))
var str2 = "hrefValue"
println(toOptional(str2).map { x -> "PREFIX/$x" }.orElse(""))
我希望這能有所幫助!
添加回答
舉報