简单的关于java的伪泛型的一个小例子

原创 2017年01月02日 23:13:42

Java的泛型,不同于c#的泛型, 

  c#中的泛型无论在程序的源码中,编译后的IL中,还是在运行前的CLR中都切实存在的,

List<int>与List<String>就是两个不同的类型,它们在运行期生成, 有自己的虚方法和类型数据, 这种实现称为类型膨胀,

基于这种方法实现的泛型被称为真是泛型.


而在java中,它只在程序的源码中存在, 在编译后的字节码文件中, 就已经被替换为原生的类型, 并在相应的地方插入了强制

转码, 因此在运行期的java来说 , ArrayList<int>和ArrayList<String>就是同一个类, java中的这种泛型的实现方法称为

类型擦除, 基于这种方法实现的泛型被称为伪泛型. 

(上述的描述参考<<深入理解java虚拟机 jvm高性能与最佳实践>>)

对于以上有一个小例子, 说明,

 public class Test {

public void doTwo(List<String> list){

}

public void doTwo(List<Integer> list){

}
}

上面的代码, 会在编译的时候出问题, 因为参数

List<String> list  List<Integer> list会在编译后会被擦除掉 ,变成原生一模一样的类型List<E>,导致无法重载.

版权声明:本文为博主原创文章,未经博主允许不得转载。

java 一个关于泛型的简单例子

  • 2010年06月21日 16:15
  • 59KB
  • 下载

一个例子全部说明java泛型中的K,V,T,E,?,object的意思及其用法

1.意思     jdk中的K,V,T,E等泛型名称很多人以为是固定写法,其实这些名称是可以改的,比如改成zhangsan,lisi都可以,jdk为了容易看懂,所以用K表示键,V表示值,T表示typ...

java泛型和反射的简单例子

public static void main(String[] args) { // 实例化这个类,泛型的类型定义为string,参数给字符串,得到的该类型为string。 fx fx1...

简单的封装了一个将java bean生成xml的一个工具类,运用了反射和泛型,重用性高。

package com.example.dbutil.utils; import java.io.StringWriter; import java.lang.reflect.Field; impo...

java io流 xml 泛型 例子学习

  • 2009年12月18日 15:29
  • 118KB
  • 下载

spring4泛型初探----一个小例子

泛型的出现,是为了让代码更规整。 例如 Set set=new HashSet(); set.add("abc"); set.add(123); //编译出错如果不用泛型,那set里面放什么都可以,...

关于枚举、反射、泛型的简单例子

一、枚举     枚举就是要让某个类型的取值只能为若干个固定值中的一个,否则,编译器就会报错。枚举是一种特殊的类,其中的每个元素都是该类的一个实例对象。定义枚举使     用的关键字是enum。...

java中的泛型的一些常见例子

001    /** 002     * @author Rollen-Holt 使用泛型 003     */ 004     005    class hello { 006     ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单的关于java的伪泛型的一个小例子
举报原因:
原因补充:

(最多只允许输入30个字)