如何在 KMM 中创建平台特定 class 的实例?

How to create an instance of a platform specific class in KMM?

例如,我有下一个 class 声明:

// commonMain 
expect class MyUseCase {
    operator fun invoke()
}
// androidMain
actual class MyUseCase {
    actual operator fun invoke() {}
}
// iosMain
actual class MyUseCase {
    actual operator fun invoke() {}
}

有没有办法在 commonMain 中创建 MyUseCase 的实例?

// commonMain
val useCase = MyUseCase() // Doesn't work

P.S. 这一定是可能的,因为 Kotlin 在创建一个class.

的实例

您需要为 class 添加构造函数:

// commonMain 
expect class MyUseCase() {
    operator fun invoke()
}
// androidMain
actual class MyUseCase actual constructor() {
    actual operator fun invoke() {}
}
// iosMain
actual class MyUseCase actual constructor() {
    actual operator fun invoke() {}
}