有时候会写出这样的一些代码。这些在Kotlin编译器的眼里可能出现问题的代码,实际上却非常正确,跑起来不会出任何问题。
然后你就得到了一个编译器警告(warning),甚至是编译错误(error)。
比较常见的,比如说 unchecked cast:
val some: List<*> = emptyList<Nothing>()
some as List<String> // Unchecked cast: List<*> to List<String>
然后就可以使用 Suppress 取消这个 warning:
val some: List<*> = emptyList<Nothing>()
@Suppress("UNCHECKED_CAST")
some as List<String>