草庐IT

SampleModuleOnly

全部标签

java - Dagger 2 : avoid exporting private dependencies

假设我有一个模块,我只想导出A的一个实例。但是,此A需要在构造函数中传递B和C的实例。所以我们也会在模块中声明它们:publicclassSampleModule{@Provides@SingletonAprovideA(Bb,Cc){returnnewA(b,c);}@Provides@SingletonBprovideB(){returnnewB();}@Provides@SingletonCprovideC(){returnnewC();}}这行得通,但现在B和C也可以在代码的其他地方使用。我想让它们保持私有(private)并强制客户端类只能访问A。有什么办法可以实现吗?