2016-04-22 51 views
4

根據官方科特林文檔的最佳途徑,空對象的toString()調用返回「空」 toString()什麼在科特林一個空對象的toString()方法返回一個空字符串,而不是「空」

我想,那toString()應該返回一個空字符串(「」)。我通過擴展功能實現了它。

fun Any?.toEmptyStringIfNull() :String { 
if (this == null) { 
    return "" 
} else { 
    return toString() 
} 

我想知道這是否可以實現更簡單/更容易/更清潔,並且不需要每次調用擴展函數。

回答

8

如何:

nullable?.toString() ?: "" 

Alexander Udalov建議:

fun Any?.toStringOrEmpty() = this?.toString() ?: "" 
+2

或者一個稍微更可讀的版本:

nullable?.toString().orEmpty() 

哪一個可以擴展方法包裝'可空?的ToString()。orEmpty()' –

相關問題