一、泛型的概念及作用

  1、泛型的概念

    Java中的泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。

    这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。

    Java语言引入泛型的好处是安全简单。

    例如:

    Class ArrayList<E>:声明一个泛型类ArrayList,其中E可以使用任意一个具体类型替代,泛型类型往往使用一个大写字母表示。

    Public boolean add(E o):E是泛型,也就是说,使用add方法时,可以为其传递任意一种类型的参数。其中此处的E是在类中定义的。

  2、泛型的作用

    Java中泛型的作用:简单安全

  在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率;

  消除代码中的强制类型转换,同时获得一个附加的类型检查层,该检查层可以防止有人将错误类型的值保存在集合中。

二、泛型类

  声明类名后使用<E>(E可以是任何其他字母),即可以指定该类是一个泛型类;

  类型参数可以在该类中需要数据类型的地方使用,如属性声明、方法声明等。

    例如:

    public class Poot<E> {

       private E ota;

      public Poot(){

       }

       public E getOta() {

        return ota;

      }

      public void setOta(E ota) {

        this.ota = ota;

      }

三、泛型方法

  所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔),该类型参数声明部分在方法返回类型之前(在下面例子中的<E>);

  例如:

  public <E> E getX(E x){

     return x;

  }

  每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。一个泛型参数,也被称为一个类型变量,是用于指定一个泛型类型名称的标识符;

  类型参数能被用来声明返回值类型,并且能作为泛型方法得到的实际参数类型的占位符;

  泛型方法体的声明和其他方法一样。注意类型参数只能代表引用型类型,不能是原始类型(像int,double,char的等)。

注意:是否拥有泛型方法,与其所在的类是否泛型没有关系。要定义泛型方法,只需将泛型参数列表置于返回值前。

四、泛型接口

  泛型接口,与泛型类完全相同

  Public interface  TestGenerics<T> {

        Public T getT(T t);

     Public String assume(T t);      

   }

  Comparable接口是泛型接口

    public interface Comparable<T> {

      public boolean compareTo(T other);

    }

  Comparable 接口包含一个类型参数 T,该参数是一个实现 Comparable 的类可以与之比较的对象的类型。这意味着如果定义一个实现 Comparable 的类,比如 String,要声明它可与什么比较(通常是与它本身比较)。

  public class String implements Comparable<String> {

       ...

   }

转载于:https://www.cnblogs.com/kelly-zkp/p/7643704.html

Java语言中的泛型相关推荐

  1. Kotlin语言中的泛型设计哲学

    Kotlin语言的泛型设计很有意思,但并不容易看懂.关于这个部分的官方文档,我反复看了好几次,终于弄明白Kotlin语言泛型设计的背后哲学.这篇文章将讲述Kotlin泛型设计的整个思考过程及其背后的哲 ...

  2. 技术图文:C#语言中的泛型 II

    C#语言中的泛型 II 知识结构: 6. 泛型接口 泛型类与泛型接口结合使用是很好的编程习惯,比如用IComparable<T>而非IComparable,以避免值类型上的装箱和拆箱操作. ...

  3. 技术图文:C#语言中的泛型 I

    C#语言中的泛型 I 知识结构: 1. 泛型概述 泛型广泛应用于容器(Collections)和对容器操作的方法中. 从 .NET Framework2.0 开始,微软提供了一个新的命名空间Syste ...

  4. Java语言中的生僻知识

    最近有一首名叫<生僻字>的流行歌曲火遍大江南北,创作者给佶屈聱牙的生僻字,配上了优美明快的旋律,竟然让歌曲变得琅琅上口.悦耳动听起来,平时不太常见的拒人于千里之外的这些汉字也不再那么陌生, ...

  5. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  6. Java 语言中十大“坑爹”功能!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源:https://www.sohu.com/a/35 ...

  7. java修饰方法有哪些,探讨Java语言中那些修饰符

    一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...

  8. java任何表达式都可以当作语句_在Java语言中语句用分号终止,并不是所有的表达式都可以构成语句...

    在Java语言中,语句以分号":"作为结束标志.块语句由其他语句组成,其本身不需要用分号结尾.另外,内嵌有块语句并以块语句结尾的语句,也不需要用分号结尾. Java语句可分为空语句 ...

  9. Java语言中的-----访问修饰符

    day04 Java语言中的----访问修饰符 一.访问修饰符概述: 访问修饰符就是对变量或者是方法或者是类的一个修饰,通过修饰以后实现一些必要的权限,主要是说明类成员如何被使用的作用. 二.访问修饰 ...

  10. java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...

    Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou 更多相关问题 [单选题]下列因素中不是经济中内在稳定器的是 [单选题]外在时滞是以下哪两 ...

最新文章

  1. “三高”程序员谈:“三高”集群架构 哈哈哈!!!
  2. 架构与思维:系统容量设计
  3. linux下shell命令trap
  4. 基于simulink的永磁无刷直流电机控制系统的仿真研究
  5. hdu 3788 字符串
  6. git fetch 命令
  7. mysql 10分钟_10分钟入门mysql(含常用的sql语句,mysql常见问题及解决方案)
  8. 【数据结构与算法】之深入解析“二叉树的层序遍历”的求解思路与算法示例
  9. html让时间只展示年月日_如何用html写代码,使得在网页上显示当前的时间和日期...
  10. http协议报文体_HTTP协议扫盲(七)请求报文之 GET、POST-FORM 和 POST-FILE
  11. linux变量赋值取值,linuxshell编程对变量的赋值
  12. vSphere 6.5 Upgrade Considerations Part-2 (vSphere 6.5升级注意事项第2部分)
  13. 中国无人车第一案!百度状告景驰王劲:窃取机密,不还电脑,索赔5000万
  14. Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一
  15. 快速生成CSS样式语法(HTML、CSS)
  16. 火狐浏览器安装有道翻译插件
  17. DDR3 内存带宽计算
  18. win10计算机系统优化设置,Win10不如win7?超实用win10系统优化设置,让电脑运行更流畅!...
  19. java 获取ipv4的地址_java 获取ip地址和网络接口
  20. alm系统的使用流程_[ALM]一步一步搭建MS ALM环境 - 安装域服务器

热门文章

  1. ECMAScript 学习笔记01
  2. 非极大值抑制(Non-Maximum Suppression)
  3. Caffe官方例程之 特征可视化python代码 (filter visualization notebook)
  4. 日期无忧,Python计算日期清单
  5. 2018 为自己加油!
  6. SQLServer数据库中截取字符串的常用方法
  7. MongoDB数据库读书笔记
  8. kubernetes如何进入指定的容器
  9. Docker教程小白实操入门(16)--如何使用ONBUILD指令在构建下一级镜像时做些什么
  10. FISCO BCOS 区块链应用开发步骤