



泛型:
 1.存储数据的时候 可以帮我们进行自动的类型检查
2.获取元素的时候,可以帮我们进行类型转换
获取数据时,不需要强转类型转换。
 
 类型形参一般使用一个大写字母表示,常用的名称有:  
 
 
 E  
 表示 
  Element  
 
 
 K  
 表示 
  Key  
 
 
 V  
 表示 
  Value  
 
 
 N  
 表示 
  Number  
 
 
 T  
 表示 
  Type  
 
 
 S, U, V  
 等等 
  -  
 第二、第三、第四个类型  
 
 
 
 java怎么编译的? 
 
 
 使用擦除机制。 
 
 
 
 运行时没有泛型概念,编译后,泛型类型擦除为Object类型。 
 
 
 
 
 泛型上界 
 
 
下面这个为什么会报错

E是引用类型,不能通过大于号比较。
需要实现一个函数,但是此时没有比较函数,因为此时array[i]从原先的E类型变成了Object类型,Object没有实现compare接口。所以需要边界,限制擦除。


 

下面定义String类型会报错,是因为String不是Number的子类。
 
下面想实现一个泛型方法,发现E会报错,因为此时E没有意义。

下面这样弄就好了。

像下面这样调用。
 也可以省略类型,此时类型跟随参数类型。
也可以省略类型,此时类型跟随参数类型。 

把函数设为静态后,就可以不定义对象调用了。




















