泛型擦除

java 泛型擦除原理

  1. java 泛型类型是伪泛型技术,在编译期会擦除所有的泛型信息.c++的是真泛型

    每次编译时删除泛型信息,但是使用时会转化成类型. c++的模板是一组宏指令集,对于不同的类型生成不同的模板代码副本.MyClass<Foo> MyClass<Do>是不同的

    区别: C++的泛型可以使用基本的数据类型,而java必须要转换成封装类,2)C++中类型可以实例化,java不行,3)java中的例子:MyClass<Foo>中Foo泛型不能用于静态方法和变量,他们会被共享,在c++中上面的两个类都是不同的,因此可以用于静态.4)java中擦除导致所有实例都是同一类型,但c++中每个都是不同的.实例类型也是不同的

  2. 参考:http://blog.csdn.net/lonelyroamer/article/details/7868820

  3. timg (1).jpg


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注