泛型

概述:

ClassCaseException:类型转换异常。

代码中不加泛型,编译没问题,运行可能会发生异常。但是用户解决不了,这样程序就存在安全隐患。所以我们希望在编译时期就能看出问题,程序员解决看后到运行时期就没有问题了。

问题产生的原因:往集合里面存了不同元素造成的。

泛型:JDK1.5版本以后出现新特性,用于解决安全问题,是一个类型安全机制。

好处:

1,将运行时期出现问题ClassCastException,转移到了编译时期,方便于程序员解决问题。让运行事情问题减少,安全。

2,避免了强制转换麻烦。

 泛型格式:通过<>来定义要操作的引用数据类型。

在使用Java提供的对象时,什么时候写泛型呢?通常在集合框架中很常见,只要见到<>就要定义泛型。其实<>就是用来接收类型的。

当使用集合时,将集合中要存储的数据类型作为参数传递到尖括号中即可。

什么时候定义泛型类?

当类中要操作的引用数据类型不确定时,早期定义Object来完成扩展,现在定义泛型类完成扩展。

泛型定义在类上:泛型类定义的泛型,在整个类中有效,如果被方法使用,那么泛型类的对象明确要操作的具体类型后,所有要操作的类型就已经固定了。

泛型定义在方法上:为了让不同的方法可以操作不同类型,而且类型还不确定,那么可以将类型定义在方法上。

注意泛型定义在方法上,是放在返回值类型的前面,修饰符的后面。

注意特殊之处:静态方法不可以访问类上定义的泛型。如果静态方法操作的引用数据类型不明确,可以将泛型定义在方法上。(静态泛型不能随着类的泛型走)

泛型定义在接口上。见到带泛型的内容的时候,用的时候往里面传参数。这个应用一般不多见,是Java定义好就直接拿来用。

泛型的高级应用(泛型限定)

当我们创建两个操作不同类型的集合时,不需要写两个迭代器。

“?”:通配符。也可以理解为占位符。

泛型的限定:是用于泛型扩展用的。

1,? extends E: 可以接收E类型或者E的子类型。(上限)

2,? super E : 可以接收E类型或者E的父类型。(下限)

。。。

黑马程序员_Java泛型的更多相关文章

  1. 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表

    \day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...

  2. 黑马程序员_Java基础:网络编程总结

    ------- android培训.java培训.期待与您交流! ---------- Java语言是在网络环境下诞生的,它是第一个完全融入网络的语言,虽然不能说它是对支持网络编程做得最好的语言,但是 ...

  3. 黑马程序员_Java基础组成

    Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...

  4. 黑马程序员_Java基础:集合总结

    ------- android培训.java培训.期待与您交流! ---------- 一.集合概念 相信大家都知道,java是一门面向对象的编程语言,而对事物的体现都是以对象的形式,所以为了方便对多 ...

  5. 黑马程序员_Java基础:IO流总结

    ------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢 ...

  6. 黑马程序员_JAVA基础知识总结3

    ------- android培训.java培训.期待与您交流! ---------- Java源文件的扩展名是.java,编译之后生成.class的文件.所有的类都有一个共同的继承祖先Object类 ...

  7. 黑马程序员_JAVA基础知识总结2

    ------- android培训.java培训.期待与您交流! ---------- IDE ---> Itegrity Development Environment Java EE --- ...

  8. 黑马程序员_Java其他对象(System,Runtime,Date,Calendar,Marh-Random)

    System System类包含一些有用的类字段和方法(都是静态的).它不能被实例化. 在System类提供的设施中,有标准输入.标准输出和错误输出流:对外部定义的属性和环境变量的访问:加载文件和库的 ...

  9. 黑马程序员_Java基础视频-深入浅出精华版--视频列表

    \day01\avi\01.01_计算机基础(计算机概述).avi; \day01\avi\01.02_计算机基础(计算机硬件和软件概述).avi; \day01\avi\01.03_计算机基础(软件 ...

随机推荐

  1. EMV/PBOC 解析(二) 卡片数据读取

    上一篇简单的了解了IC智能卡的文件结构和APDU报文,这篇我们直接来读取卡内的数据.下面我们主要参照<中国金融集成电路(IC)卡规范>. 好了废话不多说,下面贴指令: (1)卡片接收一个来 ...

  2. Demon_打砖块(建造一面墙,发射子弹打砖块)

    using UnityEngine; using System.Collections; public class CubeInit : MonoBehaviour { //砖块预设体 public ...

  3. Xcode HeaderDoc 教程(2)

    Code Snippets,让一切变得更简单: 这真的非常easy,不是吗?但还能更简单一些吗? 本站以前介绍过 code snippets.请看这里. Code snippets 在 Xcode 中 ...

  4. 使用单例模式实现自己的HttpClient工具类

    引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient 来方便我们使用各种Http服务.你可以把HttpCli ...

  5. Android 从清单配置文件元数据中获取值

    最近在上班工作当中,也尝到了一些新的知识,现总结如下(1)从AndroidManifest.xml配置文件中获取meta数据 // 从Manifest.xml配置文件中获取数据 public stat ...

  6. 配置本地yum源的方法

    配置本地yum源的方法 1. 挂载光驱 如果是上传iso镜像到服务器上,则直接挂载iso镜像即可: #mount -o loop -t iso9660 /xxxx.iso /挂载目录 开机自动加载#v ...

  7. 【解决】WordPress FTP连接服务器时出错,请检查设置,WordPress需要访问您网页服务器的权限

    刚装好wordpress,发现后台预装了两个插件,想删掉,结果要登录FTP,死活登不上去,提示"连接服务器时出错,请检查设置,WordPress需要访问您网页服务器的权限",网上也 ...

  8. eclipse导入或新建项目时报错 v7 v4

    最简单的解决方案 最简单的解决方案 1.下载最新的v4,v7的jar包 http://download.csdn.net/download/u013161218/80772472.放到workspac ...

  9. SpringMVC05使用注解的方式

    <body> <a href="add">新增</a> <a href="update">修改</a> ...

  10. .Net程序员 Solr-5.3之旅 (三)Solr 从MSSQ导入索引数据

    阅读目录 引言 准备工作 data-config.xml schema.xml 导入数据 结尾 附件下载 引言 Other men live to eat, while I eat to live.- ...