Kotlin中Suppress的非常规用法示例
Kotlin 中 Suppress 的非常规用法示例 Kotlin 中的 Suppress 注解是用于忽略特定的编译器警告的,类似于 Java 中的 SuppressWarnings。 Suppress 可以用于消除编译器警告和错误,使得代码能够顺利通过编译。 常规用法 ---- 在 Kotlin 中, Suppress 常用于消除unchecked cast 的警告。例如: ```kotlin val some: List<*> = emptyList<Nothing>() @Suppress("UNCHECKED_CAST") some as List<String> ``` 此外, Suppress 也可以用于消除其他类型的警告,例如 LeakingThis: ```kotlin sealed class Base { @Suppress("LeakingThis") val code = calculate() abstract fun calculate(): Int class Derived : Base() { override fun calculate() = 42 } ``` 非常规用法 ---- Suppress 可以用于消除 error,例如: ```kotlin @Suppress("UNSAFE_CALL") println((null as String?).length) ``` 这可以使得代码能够顺利通过编译,但是可能会出现运行时错误。 Кроме того, Suppress 可以用于消除其他类型的错误,例如: ```kotlin @Suppress("CANNOT_CHECK_FOR_ERASED") fun some(any: Any) { when (any) { is Array<String> -> println(any.size) } } ``` 这可以使得代码能够顺利通过编译,但是可能会出现类型安全问题。 例子 ---- 例例 1: ```kotlin @Suppress("CANNOT_CHECK_FOR_ERASED") fun some(any: Any) { when (any) { is Array<String> -> println(any.size) } } ``` 这可以使得代码能够顺利通过编译,但是可能会出现类型安全问题。 例例 2: ```kotlin class Some { @Suppress("TOPLEVEL_TYPEALIASES_ONLY") typealias Str = String val a: Str = "" } ``` 这可以使得代码能够顺利通过编译,但是可能会出现类型别名问题。 例例 3: ```kotlin @Suppress("INAPPLICABLE_LATEINIT_MODIFIER") lateinit val lateInitVal: String ``` 这可以使得代码能够顺利通过编译,但是可能会出现 lateinit 修饰符问题。 例例 4: ```kotlin @Suppress("UNSUPPORTED") val bs: BitSet ``` 这可以使得代码能够顺利通过编译,但是可能会出现 Collection Literals 半成品问题。 Suppress 是一个非常有用的注解,可以帮助我们消除编译器警告和错误,使得代码能够顺利通过编译。然而,我们需要小心使用 Suppress,以免出现运行时错误或其他问题。
- 粉丝: 2
- 资源: 895
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助