对于null对象的toString()方法来说,kotlin中最好的方法是返回一个空字符串而不是"null"

luk*_*kle 11 string null nullable kotlin

根据官方kotlin文档,null对象的toString()调用返回"null" toString()

我想,toString()应该返回一个空字符串("").我用扩展功能实现了它.

fun Any?.toEmptyStringIfNull() :String {
if (this == null) {
    return ""
} else {
    return toString()
}
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可以实现更简单/更容易/更清洁,并且无需每次都调用扩展功能.

mie*_*sol 23

怎么样:

nullable?.toString() ?: ""
Run Code Online (Sandbox Code Playgroud)

或者如Alexander Udalov所说:

nullable?.toString().orEmpty()
Run Code Online (Sandbox Code Playgroud)

哪一个可以包含在扩展方法中:

fun Any?.toStringOrEmpty() = this?.toString() ?: ""
Run Code Online (Sandbox Code Playgroud)

  • 或者稍微更易读的版本:`nullable?.toString().orEmpty()` (3认同)

Har*_*mut 10

可以直接使用nullable.orEmpty()

参考:https : //kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/or-empty.html

编辑: 提供的答案不完整- 仅适用于String?而不是Any?在下面的评论中指出。