黑马程序员——java 泛型
什么是泛型
泛型就是一种参数化的类型,可以让我们编写的代码被很多种不同的对象所重用,
可以使同一段代码应用于多种类型。泛型支持多态
使用泛型的好处
package com.summary.generic;
import java.util.ArrayList;
import java.util.List;
public class ValidateDemo {
publicstaticvoidmain(String[] args) {
List list = newArrayList();
list.add(1);
list.add("a");
list.add("2");
int a= (Integer) list.get(0);
int b = (Integer) list.get(2);//是错误的,编译是成功,但是程序运行时会发生后面的异常//Exception in thread "main"java.lang.ClassCastException:
//java.lang.Stringcannot be cast to java.lang.Integer
Object obj = list.get(2);
int o= (Integer) obj;//错误的
}
}
看下面这个例题
package com.summary.generic;
import java.util.ArrayList;
import java.util.List;
public class GenericDemo {
publicstaticvoidmain(String[] args) {
List<Integer> list = newArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
Object obj = list.get(0);
//String s = list.get(1);//错误的,这个时候会进行类型安全检查,Integer不能转换为String类型,出现下面的异常://
//Exception inthread "main" java.lang.Error: Unresolved compilation problem:
//Type mismatch:cannot convert from Integer to String
}
}
从上面的例题中可以看出,泛型可以解决类型的安全性问题,其主要原理是在类声明时加一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这样在类的声明或实例化时只要指定好需要的类型即可。
黑马程序员——java 泛型相关推荐
- 黑马 程序员——Java基础---IO(下)
黑马程序员--Java基础---IO(下) ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java除了基本的字节流.字符流之外,还提供 ...
- 黑马程序员Java教程学习笔记(五)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...
- 黑马程序员Java教程学习笔记(三)
学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(三) 面向对象:设计对象.注意事 ...
- 黑马 程序员——Java基础---流程控制
黑马程序员--Java基础---流程控制 ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 一.概述 Java提供了两种基本的流程控制结构:分支结构 ...
- 2023年黑马程序员Java学习路线图
2023年Java学科免费学习资源放送40+套课程,超过600小时的内容! 在过去的一年里,为了帮助更多人线上充电,学会更多技能,黑马程序员举办了 150+ 场免费直播公开课,新增精品视频教程 80+ ...
- 黑马程序员 JAVA WEB 第三节 MYSQL 约束
这是阿锃总结的第三节黑马程序员JAVA WEB视频的MYSQL约束部分的笔记.希望可以帮助跟我一样正在学习Java web的同学们.我们一起进步. b_d 若果有同学也想学习黑马程序员Java w ...
- 黑马程序员Java零基础视频教程_下部(P52-P134)
黑马程序员Java零基础视频教程_下部(P52-P134) 1. 异常 1.1 异常体系介绍 1.2 编译时异常和运行时异常 1.3 异常在代码中的两个作用 1.4 JVM虚拟机默认处理异常的方式 1 ...
- 黑马程序员Java零基础视频教程_下部(P135-P200)
黑马程序员Java零基础视频教程_下部(P135-P200) 1 多线程 1.1 什么是多线程? 1.2 多线程的并发与并行 1.3 多线程的实现方式 1.3.1 继承Thread类的方式进行实现 1 ...
- 黑马程序员Java零基础视频教程_上部(P1-P80)
黑马程序员Java零基础视频教程_上部(P1-P80) 1. Java入门 1.1 Java学习介绍 1.2 Java人机交互 1.2.1 常用CMD命令 2. Java基础学习 2.1 Java入门 ...
- 黑马程序员——Java字符流、字节流IO流
黑马程序员--Java字符流.字节流Io流 ---------------------- <a href="http://www.itheima.com"target=&qu ...
最新文章
- 哪家互联网公司涨薪最厉害?居然不是阿里腾讯
- 推荐8款我最常用的办公软件,解决痛点问题!
- antd 文本域超长问题_一款能快速批量处理SQL文本的软件:NimbleText
- MySQL第5天:MySQL的架构介绍之主要配置文件
- C++输入输出运算符重载(“”“”)
- GraphQL入门之分析RESTful存在的问题
- TCP/IP协议栈到底是内核态好还是用户态好?
- 【Codeforces - 632C】The Smallest String Concatenation (对string巧妙排序)
- 【HBase从入门到精通系列】误删数据如何抢救?
- roads 用户体验标准_全球领先技术加持,联发科 天玑1000+刷新5G用户体验新标准...
- C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件.......
- 使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础
- python 制作动画片_cocos2d from python Animation 动画片的实现
- php工作要求,PHP工作岗位要求
- Spring中各个jar包的作用
- 安卓QQ闪照解密秒存助手
- Matlba实现傅里叶变换及其逆变换
- Mac上的QQ字体大小和颜色设置
- 百度定位 Android 经纬度出现4.9E-324 问题解决
- 微信分享点击回到原APP却仍然留在微信的问题