当前位置: 首页 > 面试题库 >

guice的TypeLiteral如何工作?

王亮
2023-03-14
问题内容

Guice的TypeLiteral如何克服Java通用类型擦除过程?

它行之有效,但如何实现呢?


问题答案:

这里使用的技巧是通用超类型的签名存储在子类中,因此可以 擦除后保留 下来

如果您创建一个匿名子类new TypeLiteral<List<String>>() {}吉斯可以调用getClass().getGenericSuperclass()它,并得到了java.lang.reflect.ParameterizedType其上存在的方法getActualTypeArguments()来获得List<String>作为一个实例ParameterizedType



 类似资料:
  • 问题内容: 我有一个通用的数据库访问类,我使用TypeLiteral构造进行绑定。现在在测试中,我想模拟该类,为此我创建了一个提供程序,该提供程序创建了一个模拟实例。在我的测试中,我想访问该模拟以定义其行为。现在的问题是,我该如何从喷油器取回物体? 那是我的绑定定义: 通常我会得到一个这样的实例: 但是由于我没有将GenericDbClass的实现绑定到Interface本身,所以我不知道该怎么做

  • 在我的<code>模块中。scala我绑定了一个特性的具体实现,定义如下: 并且使用< code>TypeLiteral完成绑定: 现在,我需要在使用 Mockito 模拟进行测试时覆盖此绑定: 但我得到以下错误: 我该如何解决这个问题? 这个问题涉及到如何使用Scala Guice绑定一个用一元类型参数扩展Trait的类?

  • 我在使用Guice注入的Factory时遇到问题。 我读过这篇好文章http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html但我还是不明白。也就是说,为什么模块从未使用过?比如在Guice。createInjector()方法。 我尝

  • 问题内容: 我已经阅读了https://github.com/google/guice/wiki/AssistedInject,但是没有说明如何传递AssistedInject参数的值。jector.getInstance()调用会是什么样? 问题答案: 检查FactoryModuleBuilder类的javadoc 。 允许您动态配置类,而不是自己编写。当您的对象具有应注入的依赖项以及在对象创建

  • 问题内容: 可以说我有一个叫做Guice服务的服务,这是它的构造函数 我的代码曾经使用枚举创建它 而且我必须在某处进行工厂实施。像这样 现在,我想使用Guice,我想我想使用FactoryModuleBuilder。 如果我对IPayment的了解不止一种,该怎么办? (例如,CardPayment,CashPayment) 适用于一个 .implement(IPayment.class, Cas

  • 问题内容: 请提供一些有关如何在Google Guice或Java EE中使用的基本信息,如果使用简单的代码进行解释将非常有帮助,在此先感谢您 问题答案: 的目的在吉斯是允许你绑定类和实例以通用类型(与指定类型的参数)避免从一个事实,即泛型未用Java物化,即,从这样的事实而产生的问题,即擦除皮之间的差和在运行。通过创建泛型类型的 临时 子类,允许泛型参数的值在擦除后幸存下来。 示例用法: 这会将