我的代码如下
public class ProcessorFactory {
@Inject static Provider<Processor> processorProvider;
...
}
public class ProcessorProvider implements Provider<Processor> {
...
@Override
public Processor get() {
...
}
}
并且在Guice中,绑定按如下方式进行
bind(Processor.class).toProvider(ProcessorProvider.class).in(ServletScopes.REQUEST);
requestStaticInjection(ProcessorFactory.class);
然而,我的项目是由其他人使用HK2设立的。有人可以用HK2中的等效绑定来帮助我吗?似乎只有bind,bindAsContract和bindFactory选项...
答案 0 :(得分:0)
HK2使用Guice使用提供商的工厂。如果将提供者重新实现为工厂非常困难,HK2 devs recommend创建一个实现ret = CombineHashCodes(ret, comparer.GetHashCode(GetValue(i)));
的类并接受Provider作为构造函数arg。