TypeToken获取运行时泛型类型

最近正好使用到了guava的TypeToken来获取泛型类型

使用方法: return new TypeToken<T>(thisClass) {}.getRawType(); 

网上冲了一浪,发现关于泛型,有前人给出的总结:

Java泛型有这么一种规律: 
位于声明一侧的,源码里写了什么到运行时就能看到什么; 
位于使用一侧的,源码里写什么到运行时都没了。 

正好印证了TypeToken的实现思路:

  先创建一个TypeToken<T>的匿名继承类(属于类的申明),从而 getClass().getGenericSuperclass() 获得T的类型

参考 http://rednaxelafx.iteye.com/blog/586212

猜你喜欢

转载自www.cnblogs.com/niceboat/p/9478976.html