kotlin 智能强制转换为“X”是不可能的,因为“X”是在不同模块中声明的公共API属性

wwwo4jvm  于 2023-06-24  发布在  Kotlin
关注(0)|答案(1)|浏览(137)

我有一些代码,看起来像这样

fun onMessage(message: Message) {
    message.property?.also {
        repository.updateProperty(message.property)
    }
}

其中updateProperty()的参数不可为空。编译器给出一个错误:
Smart cast to 'Property' is impossible, because 'Message' is a public API property declared in different module
解决这个问题的最佳方案是什么?

kxeu7u2r

kxeu7u2r1#

事实证明,这和使用it一样简单。

fun onMessage(message: Message) {
    message.property?.also {
        repository.updateProperty(it)
    }
}

相关问题