不能绑定通用类型的Guice绑定不适用于“ .class”

时间:2019-05-08 06:45:45

标签: java generics dependency-injection guice guice-3

我正在尝试使用Guice绑定通用类依赖项

public class Myclass<T> {
    @Inject
    public Myclass(Class<T> clazz) {
    ...
    }
} 

我正在尝试创建Myclass<List<Integer>>,但是绑定对我来说失败

private static class ListClassType extends TypeLiteral<Class<List<Integer>>> {}

bind(new ListClassType()).toInstance(List<Integer>.class);

但是这给了我编译错误,因为List<Integer>.class无效。没有它,我将获得运行时异常,因为Guice无法绑定泛型。

有人可以帮助我找出解决问题的方法吗?我需要使绑定生效。

0 个答案:

没有答案