如何在Kotlin中使用类型检查?

时间:2018-11-10 18:59:42

标签: kotlin typechecking

在Kotlin文档中,键入check use is,但是当我编写此代码时

var a="hello"
if (a is String) print(a)

有警告

warning: check for instance is always 'true'
if (a is String) print(a)
    ^

非常感谢您提供所有答案。

2 个答案:

答案 0 :(得分:3)

在您的示例中,"hello"String literal。在Kotlin中,即使您省略变量的类型,也会推断出其类型。编译器从初始化程序表达式中推断var a的类型,因此a的类型为String。您得到的警告意味着您检查的表达式a始终是String

您的变量声明等效于var a: String = "hello",即变量只能引用String,不允许分配任何其他类型。

例如,如果将变量声明更改为var a: Any = "hello",则不会发出警告,因为变量现在可以保存任何类型的实例,而不仅仅是String

答案 1 :(得分:0)

我只是通过向Swift学习来了解如何使用类型检查

open class fruit {}
class banana: fruit() {}

fun test( a: fruit ) {
    if (a is banana) print("ok")
}

test(banana())