在过去的几天里一直在从事这种小代码翻译的工作。其实只是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)