Guice TypeLiteral兑现学习(Java匿名内部类泛型编译巧合)
Guice TypeLiteral实现学习(Java匿名内部类泛型编译巧合)Guice TypeLiteral研究Guice对绑定泛型的类使用了
Guice TypeLiteral实现学习(Java匿名内部类泛型编译巧合)
Guice TypeLiteral研究
Guice对绑定泛型的类使用了一个小技巧。那就是通过TypeLiteral利用Java匿名内部类来获取绑定具体的Runtime时候的类型参数信息。
一段取类型参数的代码来自于:TypeLiteral.java line 98
TypeLiteral.get(SomeObject.class).getFieldType(SomeObject.class.getField("someField"));
这样就可以得到Field的genericType,而且能得到正确的type argument。 4 楼 liusu 2009-06-16 恩。。 刚刚试验了一下。。。 其实这还是保存在编译时候的“字面量”(这个词不晓得合适不合适)。
public class SomeObjectImpl extends SomeObject<String, String> {
}
泛型的字面量刚刚好是String,String而不是K,V,所以正确取得了。
谢了 :)