首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Guice TypeLiteral兑现学习(Java匿名内部类泛型编译巧合)

2012-10-27 
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,所以正确取得了。

谢了 :)

热点排行