如何在 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() {}
}
例如,我有下一个 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() {}
}