- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
class TestClass {
@Inject
public TestClass(String arg1, @Assisted String arg2) {
System.out.printf("TestClass(%s, %s)\n", arg1, arg2);
}
}
interface TestFactory {
TestClass makeTestClass(String extraArg);
}
class Main {
@Inject
public TestFactory factory;
public static void main(String[] args) {
Injector i = Guice.createInjector(
new AbstractModule() { @Override protected void configure() {
bind(String.class).toInstance("any string");
install(new FactoryModuleBuilder().build(TestFactory.class));
}}
);
Main m = i.getInstance(Main.class);
m.factory.makeTestClass("assisted");
}
}
此代码工作正常并打印“TestClass(any string, assisted)”
但是根据文档,我必须调用类似的东西
install(new FactoryModuleBuilder()
.implement(TestClassInterface.class, TestClass.class)
.build(TestFactory.class));
什么时候以及为什么我真的必须使用 implement()?仅何时命名绑定(bind)?
最佳答案
当您的工厂方法的返回类型与您希望 Guice 实例化的类型不同时,您需要使用 .implement()
。如果您的工厂方法返回接口(interface)类型,通常会发生这种情况。您使用 .implement()
告诉 Guice 它应该创建的具体类类型。
关于java - guice FactoryModuleBuilder().implements() 是可选的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40156670/
我正在使用 Guice 使用配置文件中的一些参数来初始化一个类 @Provides @Singleton RetryServiceCaller provideMaxRetryAttempts(@Nam
我正在使用 Guice 和 FactoryModuleBuilder。通常,只需定义一个工厂接口(interface)就足够了,Guice 会自动注入(inject)实现。 但是,我正在努力的部分是工
class TestClass { @Inject public TestClass(String arg1, @Assisted String arg2) { Sys
在我的应用程序中,我使用 FactoryModuleBuilder 来自动创建某个类的实例: new AbstractModule() { @Override protected void c
我正在尝试使用 Guice(这里是新手!!)来完成我的一个项目。 所以我有一个 interface Consumer{ } 我的实现是 class XMLConsumer implements
感谢迁移到 jersey 2,我需要从 guice 迁移到 HK2。对于我的一些依赖项,我有一个辅助注入(inject)方法,我无法在 HK2 中实现它。看起来应该通过 Custom Injectio
我读过 Google guice - multibinding + generics + assistedinject但它似乎没有回答我的具体情况。这是我所拥有的: 与 FactoryModuleBu
我是一个 guice 新手,试图弄清楚如何使用 FactoryModuleBuilder 在 guice 中实现辅助注入(inject)。我查阅了 guice java 文档以实现 FactoryMo
什么是 Spring Framework相当于FactoryModuleBuilder , @AssistedInject , 和 @Assisted在 Google Guice ?换句话说,使用 S
我是一名优秀的程序员,十分优秀!