0
我想使用Guice类型文字内置注入,因为我需要注入类信息。请参见下面的例子:Guice:为什么TypeLiteral <T> getRawType()方法返回类<? super T>而不是类<T>?
public class Foo<T> {
private Class<T> clazz;
@Inject
public Foo(TypeLiteral<T> literal) {
this.clazz = literal.getRawType();
}
}
这本来很好的工作,但getRawType()
方法返回Class<? super T>
。内部clazz
变量被用作另一个类的方法的参数。 如果我修改clazz
类型为Class<? super T>
我将不得不重做一堆类。
这里最优雅的解决方案是什么?
是的,我知道我可以施放它,这有多安全?为什么这种方法不是返回类而是? –
@IhorM。更新了答案,理想情况下这应该是共享链接的副本。为此投票 – nullpointer