1、泛型说明
1. 泛型引入
1、使用传统方法的问题
- 
不能对加入到集合 ArrayList 中的数据类型进行约束(不安全) 
- 
遍历的时候,需要进行类型转换,如果集合中的数据量较大,对效率有影响 
2、泛型的好处
- 编译时,检查添加元素的类型,提高了安全性
- 减少了类型转换的次数,提高效率
- 不在提示编译警告
3、泛型介绍
- 泛型又称参数化类型,是jdk5.0 出现的新特性,解决数据类型的安全性问题
- 在类声明或实例化时只要指定好需要的具体的类型即可
- Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。
- 泛型的作用是:可以在类声明时通过一个标识表示类中某个属性的类型,或者是某个方法的返回值的类型,或者是参数类型。
package com.hspedu.generic;
public class Generic03 {
    public static void main(String[] args) {
        Person<String> person = new Person<String>("教育");
        
    }
}
class Person<E> {
    E s; //E 表示s 的数据类型,该数据类型在定义Person对象的时候指定,即在编译期间,就确定E是什么类型
    public Person(E s) { //E也可以是参数类型
        this.s = s;
    }
    public E f() { //返回类型使用E
        return s;
    }
}
4、泛型的语法
- 
泛型的声明: interface 接口 {} 和 class 类<K,V>{} - 其中,T,K,V不代表值,而是表示类型
- 任意字母都可以,常用 T 表示,是Type 的缩写
 
- 
泛型的实例化: 要在类名后面指定类型参数的值(类型)。如: - ListstrList = new ArrayList (); 
- Iteratoriterator = custmers.iterator(); 
 
- List
5、泛型使用的注意事项和细节
- 
interface List {} , public class HashSet (); 说明:T,E 只能是引用类型 
- 
在给泛型指定具体类型后,可以传入该类型或者其子类类型 
- 
使用形式 //编译器会进行类型推断 推荐使用 ArrayList<Integer> list = new ArrayList<>(); List<Integer> list2 = new ArrayList<>();
- 
如果我们这样写 List list3 = new ArrayList(); 默认给它的泛型是 [ E 就是 Object] 

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号