如何在 Kotlin 中键入检查对象?
Kotlin 是 JetBrains 开发的一种静态类型的通用编程语言,构建了 IntelliJ IDEA、PhpStorm、Appcode 等世界一流的 IDE。它由 JetBrains 于 2011 年首次推出,是一种新的 JVM 语言。 Kotlin 是一种面向对象的语言,是一种比Java“更好的语言”,但仍可与Java代码完全互操作。在本文中,我们将讨论如何在 Kotlin 中对对象进行类型检查,在进一步讨论之前,您应该了解一些 Kotlin 基础知识。人们经常需要在运行时检查对象是否属于特定类型。在Java中,我们使用了关键字的实例;对于 Kotlin,它是 ' is ' 关键字。
例子
让我们看看如何在这些步骤中对对象进行类型检查:
1.让我们尝试一个非常基本的示例,尝试使用字符串和整数
在这个例子中,我们将对一个字符串和一个整数进行类型检查:
Kotlin
fun main (args: Array) {
var a : Any = 1
var b : Any = "1"
if (a is String)
println ("a = $a is String")
else
println ("a = $a is not String")
if (b is String)
println ("b = $b is String")
else
println ("b = $b is not String")
}
Kotlin
fun main (args: Array) {
var b : Any = 1
if (b !is String)
println ("$b is not string")
else
println ("$b is String")
}
Kotlin
fun main (args: Array) {
var a : Any = 1
var b = a as String
}
Kotlin
fun main (args: Array) {
var a : Any = "1"
var b = a as String
println (b. length)
}
输出:
a = 1 is not String
b = 1 is String
2. 同样,我们可以使用“ !is”来检查对象是否不是String类型,如下所示:
科特林
fun main (args: Array) {
var b : Any = 1
if (b !is String)
println ("$b is not string")
else
println ("$b is String")
}
输出:
1 is not string
如果你还记得在 Kotlin 中 when 是如何工作的,我们不需要输入 is 关键字,因为 Kotlin 具有智能转换的特性,如果比较的对象类型不同,则会抛出错误。
基本上,is运算符用于检查 Kotlin 中对象的类型,“ !is”是“ is”运算符的否定。 Kotlin 编译器跟踪不可变值并在需要的地方安全地转换它们。这就是智能演员的工作方式; “ is”是一个安全的转换运算符,而一个不安全的转换运算符是 as运算符。
让我们尝试一个带有“ as”运算符的示例,该运算符用于在 Kotlin 中进行强制转换。这是一个不安全的演员表运算符。以下代码示例引发ClassCastException ,因为我们无法将整数转换为字符串:
科特林
fun main (args: Array) {
var a : Any = 1
var b = a as String
}
输出:
ERROR
另一方面,由于变量 a 可以成功运行以下代码,该变量是 Any 类型,可以强制转换为 String:
科特林
fun main (args: Array) {
var a : Any = "1"
var b = a as String
println (b. length)
}
输出:
1