转自:
java泛型的简介说明
下文笔者讲述java泛型的简介说明,如下所示
在JDK5中
Java语言引入了泛型机制
但是这种泛型机制其实是通过类型擦除来实现
即Java中的泛型只在程序源代码中有效(源代码阶段提供类型检查)
在编译后的字节码中自动用强制类型转换进行替代
也就是说
Java语言中的泛型机制其实就是一颗语法糖
相较与C++、C#相比,其泛型实现实在是不那么优雅
public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>(16);
map.put("name","java265.com");
String name = map.get("name");
System.out.println(name);
}
通过jad反编译出来的代码
public static void main(String[] args) {
//类型擦除
Map map = new HashMap();
map.put("name", "java265.com");
//强制转换
String name = (String)map.get("name");
System.out.println(name);
}
注意事项:
通过上面反编译后的代码我们发现虚拟机中其实是没有泛型的
只有普通类和普通方法
所有泛型类的类型参数在编译时都会被擦除
泛型类并没有自己独有的Class类对象