Avatar ·

如何在 Kotlin 中检查对象类型(instanceof)?Java instanceof 的对应方法

你好!我刚开始在 Java 之后学习 Kotlin,遇到了一个问题。在 Java 中,我经常使用 instanceof 运算符来检查对象是否是某个类的实例。例如:

// Java
if (obj instanceof String) {
    String str = (String) obj;
    System.out.println(str.length());
}

但在 Kotlin 中,我找不到直接的对应方法。我尝试写 obj instanceof String,但编译器报错。我尝试使用 is——似乎可以工作,但我不确定是否正确。

这是我写的代码:

fun checkType(obj: Any) {
    // 尝试检查类型
    if (obj is String) {
        // 想调用 length() 方法
        println(obj.length)
    }
}

这段代码编译并运行了。但我有几个问题:

  • 我使用 is 代替 instanceof 是否正确?
  • 之后是否需要