一尘不染

guice的TypeLiteral如何工作?

java

Guice的TypeLiteral如何克服Java通用类型擦除过程?

它行之有效,但如何实现呢?


阅读 203

收藏
2020-12-03

共1个答案

一尘不染

这里使用的技巧是通用超类型的签名存储在子类中,因此可以 擦除后保留 下来

如果您创建一个匿名子类new TypeLiteral<List<String>>() {}吉斯可以调用getClass().getGenericSuperclass()它,并得到了java.lang.reflect.ParameterizedType其上存在的方法getActualTypeArguments()来获得List<String>作为一个实例ParameterizedType

2020-12-03