栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

泛型的介绍

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

泛型的介绍

一、泛型(Generic)
1.1 泛型的概述

在前面学习集合时,我们都知道集合中是可以存放任意对象的,只要把对象存储集合后,那么这时他们都会被提升 成Object类型。当我们在取出每一个对象,并且进行相应的操作,这时必须采用类型转换。

观察下面代码:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;


public class Demo2 {
    public static void main(String[] args) {
         Collection coll = new ArrayList<>();
         // 由于集合没有做任何限定,任何类型都可以给其中存放
         coll.add("abc");
         coll.add("scy");
         coll.add(5);
        Iterator iterator = coll.iterator();
        while (iterator.hasNext()){
            String next = (String) iterator.next();
            System.out.println(next.length());
        }
    }
}
程序在运行时发生了问题 java.lang.ClassCastException 。 为什么会发生类型转换异常呢? 我们来分析下:由于 集合中什么类型的元素都可以存储。导致取出时强转引发运行时 ClassCastException 。 怎么来解决这个问题呢? Collection虽然可以存储各种对象,但实际上通常 Collection 只存储同一类型对象。例如都是存储字符串对象。因此 在JDK5 之后,新增了 泛型 ( Generic ) 语法,让你在设计 API 时可以指定类或方法支持泛型,这样我们使用 API 的时候也变得更为简洁,并得到了编译时期的语法检查。
  • 泛型:可以在类或方法中预的使用未知的类型

小贴士:

        一般在创建对象时,将未知的类型确定具体的类型,当没有指定泛型时,默认类型为Object类型。

3.2 使用泛型的好处
那么泛型带来了哪些好处呢?