Java Boolean.valueOf() 在 Kotlin 中等效?
有没有一个 Kotlin 相当于 java?我发现最接近的是.
但是,如果字符串为 null,则会创建一个 NPE。Boolean.valueOf()
.toBoolean()
.toBoolean()
有人遇到过这个吗?我是否错过了一些理解?
有没有一个 Kotlin 相当于 java?我发现最接近的是.
但是,如果字符串为 null,则会创建一个 NPE。Boolean.valueOf()
.toBoolean()
.toBoolean()
有人遇到过这个吗?我是否错过了一些理解?
如前所述,它是..toBoolean()
它的工作原理非常简单:如果 String 的值为 ,忽略大小写,则返回值为 。在任何其他情况下,这都是错误的。这意味着,如果字符串不是布尔值,它将返回 false。true
true
Kotlin 基本上有两种类型变体:和 。 当然可以绝对是任何类,或者指的是实际的类。Any
Any?
Any
Any
toBoolean
需要 一个 ,这表示一个非空字符串。这是非常基本的:String
val someString = "true"
val parsedBool = someString.toBoolean()
如果你有可为空的类型,它会稍微复杂一些。正如我所提到的,需要一个.在这些情况下,为 != 。toBoolean
String
String?
String
因此,如果您有一个可空的类型,则可以使用安全呼叫和猫王运算符
val someString: String? = TODO()
val parsedBool = someString?.toBoolean() ?: false
或者,如果您可以使用可为 null 的布尔值,则不需要 elvis 运算符。但是,如果字符串为空,则布尔值也将为空。
只是对上述内容的解释:
someString?.//If something != null
toBoolean() // Call toBoolean
?: false // Else, use false
此外,您无法编译在可为 null 的引用上使用的程序。编译器阻止它。toBoolean
最后,作为参考,方法声明:
/**
* Returns `true` if the contents of this string is equal to the word "true", ignoring case, and `false` otherwise.
*/
@kotlin.internal.InlineOnly
public actual inline fun String.toBoolean(): Boolean = java.lang.Boolean.parseBoolean(this)
String.toBoolean
如果此字符串的内容等于单词“true”(忽略大小写),否则返回 false。
在 Kotlin 中,String 永远不会为 null,因此您不必检查它。这将返回一个布尔值(仅当字符串值为“true”时才为 true)
myString.toBoolean()
现在,如果你有一个字符串?类型和需要一个布尔值
myString?.toBoolean() ?: false
如果你对布尔值没问题?返回的类型
myString?.toBoolean()