关于TypeLiteral的使用,我有几个问题。
首先,我理解,每当您想要将实例绑定到泛型信息时,都需要使用TypeLiteral。如果您想注入Box<字符串>您需要绑定bind(new TypeLiteral<Box<String>>(){}).to(BoxImpl.class),所以当您遇到@Inject Box<String>时,我们就注入实例BoxImpl。我的问题是:
当我们需要绑定
new TypeLiteral< Box< String > >(){} <-它的目的是什么,以及如何帮助绑定过程?谢谢。
发布于 2011-09-06 12:50:14
TypeLiteral实例存储在某个地方并使用它更方便。TypeLiteral<Box<String>>的匿名子类。通过这样做,您要创建的整个类的特定泛型类型参数都是固定的,因此在运行时是可用的。Box<String>绑定和其他Box<Integer>绑定。顺便提一下,举个例子,我认为你需要写:
bind(new TypeLiteral<Box<String>>(){}).to(new TypeLiteral<BoxImpl<String>>(){});(除非BoxImpl出于某种原因实现了Box<String>本身,而不是Box<T>。)
https://stackoverflow.com/questions/7314474
复制相似问题