Java 另一个JAR文件中的抽象模块
我一直在想是否有可能用匕首-2做到这一点 假设您有一个抽象模块(因为它使用泛型) 如果我在与BaseModule相同的maven工件中移动ImplModule,那么一切都会像一个符咒一样工作 如果ImplModule位于主应用程序maven工件中,我会从dagger2中得到编译错误,如: “如果没有@Provides注释的方法,则无法提供Foo。”Java 另一个JAR文件中的抽象模块,java,maven,dependency-injection,dagger-2,Java,Maven,Dependency Injection,Dagger 2,我一直在想是否有可能用匕首-2做到这一点 假设您有一个抽象模块(因为它使用泛型) 如果我在与BaseModule相同的maven工件中移动ImplModule,那么一切都会像一个符咒一样工作 如果ImplModule位于主应用程序maven工件中,我会从dagger2中得到编译错误,如: “如果没有@Provides注释的方法,则无法提供Foo。” 感觉好像我忘记了Maven中的某个东西来让整个事情顺利进行,但我无法理解。我最终理解了。 抽象类中的提供程序在另一个包中的实现中不可见 我把它保护起
感觉好像我忘记了Maven中的某个东西来让整个事情顺利进行,但我无法理解。我最终理解了。 抽象类中的提供程序在另一个包中的实现中不可见
我把它保护起来,然后一切都很酷。最后我想出来了。 抽象类中的提供程序在另一个包中的实现中不可见
我对它进行了保护,之后一切都很酷。主应用程序也运行dagger Completer吗?这通常是我在我的应用程序中有几个模块时忘记添加的。所有程序都必须运行dagger编译器。主应用程序是否也运行dagger Completer?这通常是我在我的应用程序中有几个模块时忘记添加的。所有人都必须运行dagger编译器。
@Module
public abstract class BaseModule<A> {
[...]
@Provides
@Singleton
A provideA() {
return [...]
}
}
class ImplModule extends BaseModule<Foo> {
[...]
}
public class Main() {
@Component(modules = ImplModule.class)
interface AwesomeComponent {
@Singleton Foo foo();
}
[...]
AwesomeComponent component = DaggerAwesomeComponent.builder().build();
// do something with component.foo()
}