android - 伴随对象中的 Hilt 注入
问题描述
我是 Hilt/Dagger 的新手,我还没有找到注入伴随对象的好例子。下面是我的单例和数据类。我正在尝试在 create() 函数中使用 TargetNumber 管理器。我正在寻找语法帮助和解释原因。
@InstallIn(SingletonComponent::class)
@Module
data class TargetNumberManager(
val maxNumber: Int = 3, val prefix: String = "ZZ") : ITargetNumberManager {
private var currentNumber = 0
@Singleton
@Provides
override fun getNextTargetNumber(): String {
val targetNumberBuilder: StringBuilder = java.lang.StringBuilder()
targetNumberBuilder.append(prefix)
val lengthOfNumber = currentNumber.toString().length
for (i in lengthOfNumber..maxNumber step 1) {
targetNumberBuilder.append(0)
}
targetNumberBuilder.append(currentNumber++)
return targetNumberBuilder.toString()
}
}
//数据类
data class Target(
@PrimaryKey
val targetNumber: String,
val targetType: TargetType?,
val numOfElement: Int?,
val location: Coordinate?
) : java.io.Serializable {
@AndroidEntryPoint
companion object {
fun create(): Target {
@Inject var targetNumberManager : TargetNumberManager
val nextNumber = targetNumberManager.getNextTargetNumber()
return Target(nextNumber, null, null, null)
}
}
}
解决方案
推荐阅读
- swift - RealityKit 中的 SceneKit SCNPhysicsHingeJoint 等效项?
- c++ - 绘制自定义鼠标光标
- spring - 应用程序运行失败的弹簧启动应用程序
- .net - 类型“AngularFireAuth”错误中不存在属性“auth”
- php - 如何使用 Symfony formbuilder 仅获取实体的特定元素?
- javascript - 如何使用 Moment.js 将日期转换为星期天从 0 开始计数的星期几?
- base64 - 如何在 Gatling 中对密码进行编码?
- java - Gradle Log4j 日志级别
- python-3.x - 处理网页抓取时的超时错误
- spring - 为什么未检测到 Spring Facet 且未在 Framework 下拉列表中列出?