我正在尝试使用Dagger2在对象中执行构造函数注入
@Singleton
class MyObject @Inject constructor(
val context: Application,
val launchActivity: Class<out Activity>
) {}
我的AppComponent看起来像这样:
@Singleton
interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
fun application(application: Application): Builder
@BindsInstance
fun launcher(launchActivity: Class<out Activity>): Builder
fun build(): AppComponent
}
}
我正在将该组件构建为:
DaggerAppComponent
.builder()
.application(context)
.launcher(MyLauncherActivity::class.java)
.build()
纯粹用Kotlin编译上述设置,这是我得到的错误:
error: incompatible types: Factory<Class<CAP#1>> cannot be converted to Provider<Class<? extends Activity>>
where CAP#1 is a fresh type-variable:
CAP#1 extends Activity from capture of ? extends Activity
是否可以使用匕首进行此类设置,或者是否完全缺少某些东西。我读过匕首多重绑定,这是这种设置的一种选择吗?