android - 构造函数注入在 kotlin 类中不起作用
问题描述
我已将我的 dagger 模块、组件和类转换为 kotlin。在 Model 类中使用构造函数注入时遇到以下错误:
java.lang.IllegalStateException: dataManager.appSettings must not be null
这是我的模块类:
@Module
class BaseModule {
@Provides
fun provideBaseViewModel(application: Application, dataManager: DataManager, serviceConnector: ServiceConnector, compositeDisposable: CompositeDisposable): BaseModel {
return BaseModel(application, dataManager, serviceConnector, compositeDisposable)
}
}
这是我的具有构造函数注入的模型类:
class BaseModel @Inject constructor(application: Application, dataManager: DataManager,compositeDisposable: CompositeDisposable) : BaseViewModel(application, dataManager, compositeDisposable) {
val appSettings: AppSettings
get() = dataManager.appSettings
}
这是组件类:
@Component(modules = [BaseModule::class])
interface BaseComponent {
fun inject(activity: BaseActivity)
}
解决方案
是dataManager.appSettings
可以为空的类型吗?
如果是,您可以将其设为可为AppSettings
空,如下所示:
val appSettings: AppSettings?
推荐阅读
- rabbitmq - MassTransit/RabbitMQ:一项服务或多项服务
- python - 在 Tkinter 中更改框架的位置,涉及类和函数
- python - 在区间中找到素数的最快方法
- python - 使用 beautifulsoup 从脚本标签中抓取数据
- node.js - 在nodejs中循环完成后执行条件语句
- javascript - ReactJS - 更改事件上特定按钮的按钮文本
- javascript - JavaScript逗号分隔在没有jQuery的情况下连接数组中的一组元素
- c - 是否可以在特定地址分配单个字节的内存?
- python - 使用配置和输出文件为 python 应用程序创建独立的可执行文件
- python-3.x - 在 Pandas 中拆分列表并转换为数据框