【问题标题】:Kotlin multiplatform expect/actual class , some methods sharedKotlin 多平台期望/实际类,一些方法共享
【发布时间】:2021-09-25 06:31:31
【问题描述】:

是否有可能在 KMM 中有一些期望 + 抽象类? 项目为Android+iOS

我想要一些共享类,但部分方法应该是特定于平台的。

最好的方法是什么?可能是预期类、实际类的共享父类的某种组合?

例子,

expect class Logger {
    protected timer:Long = 0
    fun info(s:String)
    fun warning(s:String)
    fun resetTimer() {
         timer = 0
    }
}

据我了解,这样的例子是不可能的,因为预期的类应该是接口而不是抽象类。

两个平台的resetTimer方法可以相同。

有可能吗?

【问题讨论】:

  • 用共同的部分创建期望类的超类。

标签: kotlin kotlin-multiplatform kotlin-multiplatform-mobile


【解决方案1】:

简短的回答是否定的。

您可以将期望/实际视为对特定平台的抽象,类似于接口,但灵活性要差得多(接口是对任何事物的抽象,而不仅仅是特定于平台的实现)

有多种选择,但无论如何您都需要将通用逻辑与预期声明分开。

【讨论】:

    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 2021-03-26
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多