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