android - Hilt : 带有 Koin 等参数的字段注入
问题描述
我正在将 Koin 迁移到 Hilt,所以它很容易,但我被困在一点上,我怎样才能像 Koin 一样在字段注入中传递参数,在 koin 中,我能够像下面的代码一样在字段注入中传递参数
private val socket: Socket by inject { parametersOf(roomId) }
但我不知道如何在 Hilt 中实现这一点!如果有人知道这对我很有帮助。基本我想在某个类中传递一些动态值,那么我该如何使用它
解决方案
您必须使用@AssistedInject
您的课程和@Assisted
id 参数。
class MyClass @AssistedInject constructor(
@Assisted private val id: Long
)
然后创建@AssistedFactory
将创建 MyClass 的实例
@AssistedFactory
interface MyClassFactory {
fun create(roomId : Long): MyClass
}
然后在需要的地方注入工厂,懒惰地使用:
@Inject
late init var myFactory : MyClassFactory
private val myClass by lazy { myFactory.create(roomId) }
推荐阅读
- c# - C# - 从 Directory.GetDirectories() 和 Directory.GetFiles() 中排除目录和文件
- javascript - JavaScript 数组自行排序
- mysql - 获取加入第二个表的聚合平均值并将它们显示在第一个表中的每个值旁边
- angular - 带有文件上传器提交事件的角度表单不起作用
- sql - 为什么某些嵌套聚合案例不起作用?
- swift - UIImageView 的变化取决于它的状态
- dictionary - 如何使用 python netcdf4 将 OrderedDict 写入 netcdf?
- python - 通过较小的第一张图片来找到正确的第二张图片
- android - 如何解决“登录错误:登录此应用程序时出错。请稍后重试。” Facebook登录错误
- sql - 如何在vertica中创建具有保留关键字列名的表?