在过去的几天里一直在从事这种小代码翻译的工作。其实只是Kotlin语法让我感到困惑...

迅速:

protocol BaseProtocol {
    associatedtype VMType = BaseViewModel
    var viewModel: VMType { get set }
}

public class BaseViewModel {
    var moduleModel: ModuleModel
    required public init(moduleModel: ModuleModel) {
        self.moduleModel = moduleModel
    }
}

这就是我带给Kotlin的东西(这是让我感到沮丧的接口(interface)协议(protocol),主要是关于仿制药)

Kotlin :
interface BaseInterface<VMType> {    // Not sure if this is correct
    // protocol code...
}

class BaseViewModel(internal var moduleModel: ModuleModel)

我相信我已经正确构造了BaseViewModel,但是如果需要调整的话,我也很高兴。

在此先感谢您的任何建议!

最佳答案

我不是一个敏捷的程序员,所以如果我错了,请纠正我。您的协议(protocol)类型是否绑定(bind)到BaseViewModel类?如果是,您也可以在接口(interface)中声明一个有界类型。

interface BaseInterface<T : BaseViewModel>

而且,由于您受BaseViewModel类的限制,请确保通过添加open修饰符将其设置为可继承的。
open class BaseViewModel(var moduleModel: ModuleModel)

10-08 18:50