2016-04-22 185 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()' –

相关问题