伴随对象中的刀柄注入

时间:2021-02-08 13:51:13

标签: android kotlin dagger-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)
    }
}

}

0 个答案:

没有答案