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

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

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

  1. fun onMessage(message: Message) {
  2. message.property?.also {
  3. repository.updateProperty(message.property)
  4. }
  5. }

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

kxeu7u2r

kxeu7u2r1#

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

  1. fun onMessage(message: Message) {
  2. message.property?.also {
  3. repository.updateProperty(it)
  4. }
  5. }

相关问题