我在试着
@Inject
班级
Outer
有一个嵌套的
data
班
Inner
Component
代码将嵌套类引用为
Outer$Inner
什么时候
内部
用作泛型类型。
Outer.Inner
// injected class
class Outer @Inject constructor(
private val repository: Repository
) : BaseOuter<Outer.Inner, Output> {
override fun invoke(input: Inner): Observable<Output> {
return repository.getOutput(input.id)
}
data class Inner(
val id: String
)
companion object {
const val NAMED = "OUTER"
}
}
// dagger module
@Named(Outer.NAMED)
@Provides
fun provideOuter(
factory: WrapperFactory<Outer.Inner, Output>,
outer: Outer
): WrappedOuter<Outer.Inner, Output> {
return factory.wrap(outer)
}
// target class where Outer is injected
class TargetClass @Inject constructor(
@Named(Outer.NAMED) val outer: WrappedOuter<Outer.Inner, Output>
)
// generated code in DaggerMainComponent
...
import some.package.name.Outer$Inner;
// error: cannot find symbol
// import some.package.name.Outer$Inner; // should be when Outer.Inner
// ^
// symbol: class Outer$Inner
// location: package some.package.name
...