所有
我会感激一些帮助,我有一个匕首生成的代码实际上没有编译的情况。我们对子组件进行了相当精细的设置,如下图所示,以S结尾的组件是子组件。
A - BS
|
CS - DS
|
ES - FS
所有子组件都包含构建器接口,如下所示:
ValueError: x and y must have same first dimension
在A i的模块中,有以下内容可以访问其他组件:
@Subcomponent(modules = BS_Module.class)
public interface BS {
@Subcomponent.Builder
public interface Builder {
Builder requestModule(BS module);
BS build();
}
}
整个事情生成得很好,但为provideB'生成的代码不能编译:
@Provides
@Singleton
@Inject
public BS provideBS(Provider<BS.Builder> builder) {
return builder.get().build();
}
但是BSImpl doest没有零参数构造函数,只有:
@Override
public BS provideBS() {
return new BSImpl();
}
希望我的情况有点清楚,任何帮助都表示赞赏,因为我不知道如何解决这个问题。
解决
我得到了依赖图的错误方法...... A不能直接依赖于BS提供的东西,BS只能依赖于A提供的东西。
答案 0 :(得分:0)
在评论中解决:
@DavidRawson最终很简单。我得到了依赖图错误的方式... A不能直接依赖于BS提供的东西,BS只能依赖于A提供的东西。现在唯一剩下的就是找出范围,因为由于A的重复范围,我无法让BS提供单身人士。 - Michel Onstein