泛型是JDK1.5以后增加的,它可以帮助我们建立类型安全的集合。在使用了泛型的集合中,遍历时不必进行强制类型转换。JDK提供了支持泛型的编译器,将运行时的类型检查提前到了编译时执行,提高了代码可读性和安全性。

泛型的本质就是“数据类型的参数化”。 我们可以把“泛型”理解为数据类型的一个占位符(形式参数),即告诉编译器,在调用泛型时必须传入实际类型。

自定义泛型:

我们可以在类的声明处增加泛型列表,如:<T,E,V>。字符可以是任何标识符,一般采用这3个字母。

demo:

package ftf001;public class generic {public static void main(String[] args) {MyCollection<String> mc=new MyCollection<>();  //这里的String就是实际传入的数据类型!mc.set("房廷飞", 0);String a =mc.get(0);  //由于使用了泛型,返回的数据类型直接就是String类型,不再需要强制类型转换
    }}
//应用泛型,提前做类型检测,使程序更加稳定,可读性强
class MyCollection<E>{  //一般使用T,E,V三个字母Object[] objs=new Object[5];public void set(E obj,int index) {  //E表示泛型objs[index]=obj;}public E get(int index) {  //E泛型return (E)objs[index];    //E泛型
    }
}

泛型E像一个占位符一样表示“未知的某个数据类型”,我们在真正调用的时候传入这个“数据类型”。

2019-04-04    21:35:43    房廷飞

转载于:https://www.cnblogs.com/fangtingfei/p/10657166.html

Java 泛型 (generics) 的使用相关推荐

  1. Java泛型Generics

    转载请标明出处: http://blog.csdn.net/wu_wxc/article/details/51493181 本文出自[吴孝城的CSDN博客] 泛型 泛型是JDK 5中引入的一个新特性 ...

  2. Java 泛型(Generics) 综述

    一. 引子 一般的类和方法,只能使用具体类型:要么是基本类型,要么是自定义类型.如果要编写可以应用于多种类型的代码,这种刻板的限制对代码的束缚就会很大. 多态 算是一种泛化机制,但对代码的约束还是太强 ...

  3. 泛型java博客园,Java深度历险之Java泛型

    Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter).声明的类型参数在使用时用具体的类型来替换.泛型最主要的应用是在JD ...

  4. java 泛型 class t_java 泛型中classT 和T的区别是什么?

    public boolean edit(T entity) 和public T get(Class c, Serializable id)中这两种参数的定义和调用有什么区别? public boole ...

  5. java泛型常用特点_?你必须知道的Java泛型

    前言 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin3923282... 种一棵树最好的时间是十年前,其次是现在 我知道很多人不玩qq了,但是怀旧一下,欢 ...

  6. java 泛型参数_Java泛型

    一.概述 Java泛型(generics)是JDK 5中引入的一个新特性,泛型提供了编译时类型安全监测机制,该机制允许程序员在编译时监测非法的类型.使用泛型机制编写的程序代码要比那些杂乱地使用Obje ...

  7. java泛型中的t_java泛型中什么是T?

    java泛型中什么是T? 发布时间:2020-05-06 13:55:03 来源:亿速云 阅读:118 作者:小新 这篇文章主要为大家详细介绍了java泛型中什么是T,文中示例代码介绍的非常详细,具有 ...

  8. Java泛型专题之2、聊一聊-JAVA 泛型中的通配符 T,E,K,V,?

    目录 1. 前言 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说 ...

  9. java的知识点23——泛型Generics、Collection接口、List特点和常用方法、 ArrayList特点和底层实现

    泛型Generics 一般通过"容器"来容纳和管理数据.程序中的"容器"就是用来容纳和管理数据. 数组就是一种容器,可以在其中放置对象或基本类型数据. 数组的优 ...

最新文章

  1. matplotlib 中将图直接从buffer中变为PIL 再到numpy
  2. python有道自动翻译_Python 调用有道翻译接口实现翻译
  3. CPU 的 ring0、ring1、ring2、ring3
  4. 深入理解ElasticSearch(七):执行分布式检索
  5. 调用python接口并画图_【PySpark源码解析】教你用Python调用高效Scala接口
  6. 使用fstream在C++工程中读取文件到二维数组
  7. Java编写程序将数据存入Kafka中
  8. Windows平台下PHP7添加Sqlserver扩展
  9. wps使用切片器,解决切片器灰色问题
  10. 万字长文分析递归算法的时间和空间复杂度,从此对递归不再迷茫!
  11. 一篇文章读懂C++ 继承
  12. JavaScript格式化数字
  13. 1009 美好的一天
  14. druid 配置理解及监控界面参数理解
  15. R语言初探之存储模型/报童问题
  16. html5 link prefetch,dns预获取(dns-prefetch)link rel="dns-prefetch"优化载入速度
  17. 再添新彩!忆享科技成为腾讯蓝鲸智云官方服务商
  18. CAR-T最新研究成果进展(2021年11月)
  19. ARM NEON寄存器
  20. 基于Python的工人员工工资管理系统

热门文章

  1. linux asm函数,Linux 字符设备驱动—— ioremap() 函数解析
  2. es java bulk 导入数据一直超时_亿级别记录的mongodb批量导入ElasticSearch的java代码完整实现...
  3. jquery获取和设置内容文本值
  4. android标签循环,iOS和Android规范解析——标签导航和分段控件
  5. java底层app_Java底层类和源码分析系列-ArrayBlockingQueue底层架构和源码分析
  6. 端到端--流量控制、可靠传输和滑动窗口机制学习资料整合
  7. 试题13 进制转换(十进制-R进制)
  8. 递归法:求n个元素的全排列
  9. 人群与网络:社会选择与社会影响
  10. 循环矩阵的快速幂(bzoj 2510: 弱题)