我的问题很简单 我可以在一个不扩展AbstractModule的类中使用@Provides方法吗?
@Provides
public int someMethod() {
return someValue;
}
我可以在一个不扩展AbstractModule的类中使用这样的方法吗,还是应该在guicemodule类中使用?
Module
.从技术上讲,所有的东西都是 Module
因此,Guice必须将其识别成这样。Guice期望运行 configure(Binder)
就可以了。
这就是你的做法。
public class MyModule implements Module { // See? No AbstractModule
@Provides
public int someMethod() {
return someValue;
}
@Override public void configure(Binder binder) {}
}
如果你只是想要一个没有任何实现需求的虚类来存储你所有的模块,那么你目前很不走运,因为这是不可能的。
然而从Guice 4.1开始,你可以不需要实现就能写出下面的内容。configure(Binder)
这还不算太坏。
public class MyModule extends AbstractModule {
@Provides
public int someMethod() {
return someValue;
}
}