此为毕向东老师的上课笔记,搬运到此只为方便自己查看

泛型:jdk1.5以后出现的安全机制

好处:

1.将运行时的问题ClassCastException转到了编译时期

2.避免了强转的麻烦

<>:什么时候用?

答:当操作的引用数据类型不确定的时候就用<>,将要操作的引用数据类型传入即可,其实<>就是一个用于接收具体引用数据类型的参数范围

在程序中只要用到了带有<>的类或者接口,就要明确传入的具体引用数据类型

泛型技术是给编译器使用的技术,用于编译时期,确保了类型的安全,运行时,会将泛型去掉,生成的class文件中是不带泛型的,这个称为泛型的擦除

泛型在集合中的应用:

Person类是已定义类

import java.util.Iterator;

import java.util.TreeSet;

public class GenericDemo {

public static void main(String[] args) {

TreeSet ts = new TreeSet();

ts.add(new Person("lisi",12));

ts.add(new Person("lisi2",13));

ts.add(new Person("lisi3",14));

ts.add(new Person("lisi4",15));

Iterator it = ts.iterator();

while(it.hasNext()) {

Person p = it.next();

System.out.println(p);

}

}

}

运行结果:Exception in thread "main" java.lang.ClassCastException: collectiondemo.Person cannot be cast to java.lang.Comparable

解决:使Person类继承Comparable接口,重写compareTo(Person p)方法,

public int compareTo(Person p){

int temp = this.age - p.age;

return temp ==0?this.name.compareTo(p.name):temp;

}

标签:java,数据类型,ts,Person,泛型,new

来源: https://www.cnblogs.com/dengbiao/p/12409560.html

java的泛,java_泛型相关推荐

  1. 0.Java进阶学习之泛型

    1. 什么是泛型? 泛型是Java SE 1.5的新特性. "泛型"意味着编写的代码可以被不同类型的对象所重用. 泛型的本质是参数化类型. 也就是说,泛型是将所操作的数据类型作为参 ...

  2. Java这个高级特性-泛型,很多人还没用过!

    点击关注公众号,Java干货及时送达 泛型是 Java 的高级特性之一,如果想写出优雅而高扩展性的代码,或是想读得懂一些优秀的源码,泛型是绕不开的槛.本文介绍了什么是泛型.类型擦除的概念及其实现,最后 ...

  3. Java基础篇:泛型与类型擦除

    一.什么是泛型: 泛型的本质是 参数化类型,也就是说 将所操作的数据类型 指定为一个参数,在不创建新类的情况下,通过参数来指定所要操作的具体类型(类似于方法中的变量参数,此时类型也定义成参数形式),也 ...

  4. yii2数组转为对象_好程序员Java学习路线分享java为什么不支持泛型数组

    本篇文章好程序员为大家一下java为什么不支持泛型数组,希望对大家有所帮助. public class Pair { public void info( ) { System.out.println( ...

  5. Java笔记05-Collection、泛型、迭代器

    Java笔记05-Collection.泛型.迭代器 [Collection.泛型] 主要内容 Collection集合 迭代器 增强for 泛型 第一章 Collection集合 1.1 集合概述 ...

  6. Java核心篇之泛型--day5

    Java核心篇之泛型–day5 泛型是JDK5时引入的一个新特性,泛型提供了编译时类型安全检查的机制,该机制允许程序猿在编译时检测到非法的类型输入. 泛型的本质是参数化类型,也就是说操作的类型被指定为 ...

  7. 【转载】JAVA的泛型和C++的模板的区别与联系

    一.概述 泛型本质上是提供类型的"类型参数",它们也被称为参数化类型(parameterized type)或参量多态(parametric polymorphism).其实泛型思 ...

  8. java invoke 泛型_如何通过java反射调用含有泛型数组参数的方法

    最近在看一个算法课程,老师用的是c++的template和函数指针来完成一个实现,于是我想用java通过反射和泛型来完成,但是出现了问题. 希望通过java反射以及泛型来实现动态测试SortClass ...

  9. 剖根问底:Java 不能实现真正泛型的原因是什么?

    大家好,我是二哥呀! 今天我来给大家讲一下,Java 不能实现真正泛型的原因是什么? 本文已同步至 GitHub <教妹学 Java>专栏,风趣幽默,通俗易懂,对 Java 初学者亲切友善 ...

最新文章

  1. Docker基础之九: 管理容器的数据
  2. 前端学习(571):margin负值下的两栏自适应
  3. nodejs怎么与c语言通信费是什么,NodeJS介绍与使用
  4. .NPT 扩展名格式文件类型及打开方式分析:首次渗入 XR 内容领域
  5. jni直接转byte_JNI jbyteArray转char*
  6. python连接mongodb的库文件pymongo
  7. python 读取文本文件_如何在Python中读取大文本文件
  8. 微信小程序之文本内的p标签去除
  9. python 人民币数字转汉字大写金额
  10. 100天精通Andriod逆向——第4天:各种抓包工具学习
  11. youtube爬虫搭建
  12. (强烈推荐)基于SSM和BootStrap的共享云盘系统设计(项目开发与实现:注册/登录)
  13. echarts实现甘特图
  14. ukf源程序 matlab,《卡尔曼滤波原理及应用-MATLAB仿真》程序-5.1UKF
  15. 麻球繁衍(Tribbles 概率dp)
  16. 新海诚没有参与制作的作品_这种新海诚风的摄影作品是怎么制作的?
  17. 本地ecshop网站怎么上传到服务器,ecshop 上传服务器
  18. QT FTP上传文件
  19. 实训一 思科交换机基础配置
  20. 新一代私有云来了!看透基于开源生态的产品化

热门文章

  1. 云计算作业001-电脑配置
  2. 用js来实现那些数据结构01(数组篇01-数组的增删)
  3. 切实把握大数据时代的新机遇新变革
  4. 动画 - 收藏集 - 掘金
  5. 用批处理读取特定注册表项的路径值
  6. jQuery hover事件鼠标滑过图片半透明标题文字滑动显示隐藏
  7. 客户网站被黑导致CDN加速后打开域名就提示域名纠错
  8. 重学C---------第三节:求两个整数中的大者
  9. C++之文件输入输出
  10. ScrollView常用属性汇总