首页 > 解决方案 > 匕首每次从单例类创建新实例

问题描述

可以说我有一个使用匕首注入的单例类

@Singleton
class SingletonClass {

    @Inject
    lateinit var newInstanceEveryTime: NewInstanceEveryTime

    fun getNewInstance(): NewInstanceEveryTime {
        return newInstanceEveryTime
    }
}

每当我使用 SingletonClass.getNewInstance() 调用该方法时getNewInstance(),我每次都需要获取新实例,但我知道它不会每次都创建实例,谁能帮助我如何使用匕首从单例类中实现这一点。

标签: androiddependency-injectiondagger-2dagger

解决方案


如果您像这样创建该类,则每次需要时都会将其作为新实例注入:

class NewInstanceEveryTime @Inject constructor() {}

或者你可以这样做:

@Singleton
class SingletonClass {

    fun getNewInstance() = NewInstanceEveryTime()
}

但是你的用例是什么?为什么需要这种工厂方法?


推荐阅读