黑马程序员_泛型

------- android培训java培训、期待与您交流! ----------

 

泛型:
    它是jdk1.5版本,出现的技术,是一个安全机制。
   泛型技术的由来:
     集合中可以存储任意类型对象,但是在取出时,如果要使用具体对象的特有方法时,需要进行向下转型,
     如果存储的对象类型不一致,在转型过程中就会出现ClassCastException异常。
   在jdk1.5以后就有了解决方案,就是泛型技术。
   解决方案就是,在存储元素时,就不允许存储不同类型的元素。
   存储了就编译失败。
   
   所以就需要在存储元素时,在容器上明确具体的元素类型,这其实就和数组定义很像。
   
   好处:
    1,将运行时期的classcastException异常转移到了编译时期,进行检查,并以编译失败来体现。
    这样有利于程序员尽早解决问题。
    2,避免了向下转型(强转的)麻烦。
    
    
   什么时候写泛型呢?
   
    先简单理解:只要在使用类或者接口时,该类或者接口在api文档描述时都带着<>就需要在使用时,定义泛型。
    其实:泛型无非就是通过<>定义了一个形式参数,专门用于接收具体的引用类型。
    在使用时,一定要传递对应的实际参数类型。
    集合中泛型的应用特别多见。
   
   没有使用特有方法的不需要强转的,正因为要使用特有方法所以就要加泛型。
   
   泛型的擦除:
     泛型技术是用于编译时期的技术,这个技术是编译器里面融合进来了,生成后的class文件是不带泛型的。编译器会按照<>
     中的指定的类型对元素进行检查,检查不匹配,就编译失败,匹配,就编译通过,通过后生产的class文件中是没有泛型的。
   泛型的补偿:
     运行时,可以根据具体的元素对象获取其具体的类型,并用该类型对元素进行自动转换。
     
  泛型对于程序的设计也有一定优化动作。
  当一个类要操作的引用数据类型不确定的时候,可以将该类型定义一个形参。
  用到的这类时,有使用者来通过传递类型参数的形式,来确定要操作的具体的、
  对象类型。
  意味着:在定义这个类时候,需要在类上定义形参,用于接收具体的类型实参。   
  这就是泛型定义在类上, 这就是泛型类。
  
  什么时候使用泛型类呢?只要类中操作的引用数据类型不确定的时候,就可以定义泛型类。
  
  有了泛型类,省去了曾经的强转和类型转换异常的麻烦。
  
  
  泛型除了 可以定义在类上 也可以定义在方法上。
  
  定义方法的是 在public加泛型。
   静态方法不可以访问类上定义的泛型,如果需要泛型,该泛型只能定义在方法上。 静态的泛型定义在返回值前面,类型的后面。  
  泛型也可以定义在接口上,只要类型不确定都可以写泛型。
  
   实现接口时,明确具体的类型。
   实现接口时候,也不明确具体的类型。  
通配符的应用: 
  集合中使用的注意特点:保证两边一致。简单的定义方式就是保证两边类型一致,但是也有其他情况。
  泛型的通配符:?  类型不匹配时候用。当操作不同容器中类型都不确定的时候,而且使用的都是元素的从Object类中继承的方法。
  这时泛型就用通配符?来表示即可。

泛型的限定:
  明确具体类型代表一个类型,明确?代表所有类型,
  能不能对操作的类型限制在一个范围之内呢?
  
  比如:定义一个功能,只操作person类或者person子类型。这时可以用?继承 E接收e类型或者E的子类型。
  存储时候就用这种方式。这就是上限。
  下限的表示形式: ? super E;接受E类型或者E的父类型。
      
 什么时候使用上限呢? 一般情况下,只要是往容器中添加元素时,使用上限 ? extends  E
 什么时候使用下限呢?一般情况下,只要是从容器中取出元素时,使用下限 ? super E   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
系统根据B/S,即所谓的电脑浏览器/网络服务器方式,运用Java技术性,挑选MySQL作为后台系统。系统主要包含对客服聊天管理、字典表管理、公告信息管理、金融工具管理、金融工具收藏管理、金融工具银行卡管理、借款管理、理财产品管理、理财产品收藏管理、理财产品银行卡管理、理财银行卡信息管理、银行卡管理、存款管理、银行卡记录管理、取款管理、转账管理、用户管理、员工管理等功能模块。 文中重点介绍了银行管理的专业技术发展背景和发展状况,随后遵照软件传统式研发流程,最先挑选适用思维和语言软件开发平台,依据需求分析报告模块和设计数据库结构,再根据系统功能模块的设计制作系统功能模块图、流程表和E-R图。随后设计架构以及编写代码,并实现系统能模块。最终基本完成系统检测和功能测试。结果显示,该系统能够实现所需要的作用,工作状态没有明显缺陷。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。进入银行卡列表,管理员可以进行查看列表、模糊搜索以及相关维护等操作。用户进入系统可以查看公告和模糊搜索公告信息、也可以进行公告维护操作。理财产品管理页面,管理员可以进行查看列表、模糊搜索以及相关维护等操作。产品类管理页面,此页面提供给管理员的功能有:新增产品类,修改产品类,删除产品类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值