在java中使用TypeLiteral

use*_*283 15 java guice java-ee

请提供一些有关如何TypeLiteral使用Google Guice或Java EE的基本信息,如果使用简单的代码解释它将会非常有用,提前感谢

Ada*_*man 18

TypeLiteralGuice 的目的是允许您将类和实例绑定到泛型类型(指定了类型参数),避免了因为泛型不是用Java来实现的问题,即擦除隐藏了SomeInterface<String>和之间的区别这一事实SomeInterface<Integer>.运行.TypeLiteral通过创建泛型类型的ad hoc子类,允许通用参数的值在擦除中存活.

用法示例TypeLiteral:

bind(new TypeLiteral<SomeInterface<String>>(){})
    .to(SomeImplementation.class);
Run Code Online (Sandbox Code Playgroud)

这会将类型的参数绑定SomeInterface<String>SomeImplementation类.

对于一些背景信息,请查看关于超类型令牌的博客文章,然后查看关于类型文字的这篇博文.