今天在学习其他的时候,无意发现了一个有趣的东西.看下面的代码
package generic;
import java.lang.reflect.Field;
import java.util.Map;
/**
* User: zhenghui
* Date: 13-11-13
* Time: 上午10:41
*/
public class GenericClass {
private Map<String, Long> map;
public static void main(String[] args) throws NoSuchFieldException {
Field map_field = GenericClass.class.getDeclaredField("map");
System.out.println(map_field.getGenericType());
}
}
然后,看打印输出
写道
java.util.Map<java.lang.String, java.lang.Long>
我擦了..说好的类型擦除呢~! 是我学艺不精啊..被网上充斥的一堆类型擦除给迷惑了....然后google相关知识..又回复到撒迦的地盘了.. 答复: Java获得泛型类型
至于原理性的东西,撒迦的帖子已经说的很详细了..下面再补充一个具体的实现代码
http://developer.51cto.com/art/201103/250028.htm
差不多就这样.