码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员_java泛型

时间:2014-10-30 00:05:15      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:android   style   http   io   color   os   使用   java   for   

                         -----Java培训、Android培训、iOS培训、.Net培训、期待与您交流!

        由于本人认知有限,无法详细介绍泛型,因此本文只是粗略的描述泛型的相关知识,在以后的学习过程中会对这篇文章进行修改,希望这篇文章不会给读者带来迷惑,特此声明

什么是泛型?

     泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。

        泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入。

为什么要使用泛型

    在使用泛型之前,将存入集合中的元素可以是任意数据类型,当从集合中取出元素时,所以元素的类型都是Object类型,需要对元素进行向下强制转型,转换到特定的类型。比如:

        List myIntList = new LinkedList(); // 1

        myIntList.add(new Integer(0)); // 2

        Integer x = (Integer) myIntList.iterator().next(); // 3

第三行的这个强制类型转换可能会引起运行时的错误。

泛型的思想就是由程序员指定类型,这样集合就只能容纳该类型的元素

使用泛型:

        List<Integer> myIntList = new LinkedList<Integer>(); // 1‘

        myIntList.add(new Integer(0)); // 2‘

        Integer x = myIntList.iterator().next(); // 3‘

将第三行的强制类型转换变为了第一行的List类型说明,编译器会为我们检查类型的正确性。这样,代码的可读性和健壮性也会增强。

泛型的好处

    1 类型安全:泛型的主要目标是提高java程序的类型安全,泛型定义的变量类型会受到限制,编译器可以在一个高得多的成都上进行验证类型的假设。没有泛型这些假设只能存在于程序员的头脑中。

    2 消除强制类型转换:泛型的一个附带的好处是,消除源代码中的许多强制类型的转化,这使得代码更加可读,减少出错的概率

    简而言之:泛型的出现,第一可以将运行时的错误提前到了编译时期,第二 减少了类型转化,简化了代码提高了阅读性。

泛型使用原则

     1、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。

        2、同一种泛型可以对应多个版本(因为参数类型是不确定的),不同版本的泛型类实例是不兼容的。

        3、泛型的类型参数可以有多个。

        4、泛型的参数类型可以使用extends语句,例如<T extends superclass>。习惯上成为"有界类型"。

        5、泛型的参数类型还可以是通配符类型。例如Class<?> classType = Class.forName(Java.lang.String);

黑马程序员_java泛型

标签:android   style   http   io   color   os   使用   java   for   

原文地址:http://www.cnblogs.com/yueyazhishang/p/4060733.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!