gpt4 book ai didi

java - Guice:如何获得 TypeLiteral 包装的泛型的实例?

转载 作者:太空狗 更新时间:2023-10-29 22:31:30 24 4
gpt4 key购买 nike

我有一个通用的数据库访问类,我正在使用 TypeLiteral 结构对其进行绑定(bind)。现在在测试中我想模拟那个类,因此我创建了一个 Provider,它创建了一个模拟实例。在我的测试中,我想访问那个模拟来定义它的行为。现在的问题是,如何从注入(inject)器中检索对象?

这是我的绑定(bind)定义:

binder.bind(new TypeLiteral<GenericDbClass<Integer>>(){}).GenericDbClassProvider.class);

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

injector.getInstance(GenericDbClass.class);

但是由于我没有将 GenericDbClass 的实现绑定(bind)到接口(interface)本身,所以我不知道该怎么做。我觉得很复杂吗?

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

最佳答案

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

injector.getInstance(Key.get(new TypeLiteral<GenericDbClass<Integer>>(){});

会成功的。

关于java - Guice:如何获得 TypeLiteral 包装的泛型的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6438803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com