我有一个通用的数据库访问类,我使用TypeLiteral构造绑定它。现在,在一个测试中,我想模拟那个类,并为此创建了一个提供程序,它创建了一个模拟实例。在我的测试中,我想访问这个mock来定义它的行为。现在的问题是,我如何从注入器中检索对象?
这就是我的绑定定义:
binder.bind(new TypeLiteral<GenericDbClass<Integer>>(){}).GenericDbClassProvider.class);通常我会得到一个这样的实例:
injector.getInstance(GenericDbClass.class);但是由于我没有将GenericDbClass的实现绑定到接口本身,所以我不知道如何做到这一点。我想得太复杂了吗?
任何想法/帮助都是非常感谢的!
发布于 2011-06-22 20:53:53
使用Guice的Key工具,它就是为解决这类问题而设计的。在你的情况下
injector.getInstance(Key.get(new TypeLiteral<GenericDbClass<Integer>>(){});就能达到目的。
https://stackoverflow.com/questions/6438803
复制相似问题