首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Guice:如何获取TypeLiteral包装的泛型的实例?

Guice:如何获取TypeLiteral包装的泛型的实例?
EN

Stack Overflow用户
提问于 2011-06-22 19:08:37
回答 1查看 12.6K关注 0票数 18

我有一个通用的数据库访问类,我使用TypeLiteral构造绑定它。现在,在一个测试中,我想模拟那个类,并为此创建了一个提供程序,它创建了一个模拟实例。在我的测试中,我想访问这个mock来定义它的行为。现在的问题是,我如何从注入器中检索对象?

这就是我的绑定定义:

代码语言:javascript
复制
binder.bind(new TypeLiteral<GenericDbClass<Integer>>(){}).GenericDbClassProvider.class);

通常我会得到一个这样的实例:

代码语言:javascript
复制
injector.getInstance(GenericDbClass.class);

但是由于我没有将GenericDbClass的实现绑定到接口本身,所以我不知道如何做到这一点。我想得太复杂了吗?

任何想法/帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-22 20:53:53

使用Guice的Key工具,它就是为解决这类问题而设计的。在你的情况下

代码语言:javascript
复制
injector.getInstance(Key.get(new TypeLiteral<GenericDbClass<Integer>>(){});

就能达到目的。

票数 44
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6438803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档