本文介绍了使用泛型进行多重绑定的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建 Multibinder< A<?扩展B>> 。我尝试使用 Multibinder.newSetBinder(binder(),A.class)。第二个参数是 Class< T> 所以在我的guice模块中执行此操作会给我一个类型不匹配错误。

I am trying to create a Multibinder<A<? extends B>>. I have tried using Multibinder.newSetBinder(binder(), A.class). The second parameter is a Class<T> so doing this in my guice module gives me a Type mismatch error.

Multibinder< A<?扩展B>> multibinder = Multibinder.newSetBinder(binder(),A.class)

是否可以绑定这些通用集合?也许我可以使用另一种 Multibinder ?有没有人有任何想法?

Is it possible to bind these kind of generic collections? Maybe I could use a different kind of Multibinder? Does anyone have any ideas?

推荐答案

有一个版本需要 TypeLiteral

final Multibinder<List<? extends Number>> multibinder =
            Multibinder.newSetBinder(binder(), new TypeLiteral<List<? extends Number>>() {})

这篇关于使用泛型进行多重绑定的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-12 10:38