《java入门第一季》之泛型引入
2016-05-26 22:42
507 查看
泛型的引入:
首先看一段代码体会自动报错。
集合也模仿着数组的这种做法,在创建对象的时候明确元素的数据类型。这样就不会在有问题了。
而这种技术被称为:泛型。
泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。
格式:
<数据类型>
此处的数据类型只能是引用类型。
好处:
A:把运行时期的问题提前到了编译期间 --回想上边数组报错
B:避免了强制类型转换
C:优化了程序设计,解决了黄色警告线
通过一段代码来认识泛型到底是什么。
首先看一段代码体会自动报错。
// 看下面这个代码 自动报错 String[] strArray = new String[3]; strArray[0] = "hello"; strArray[1] = "world"; strArray[2] = 10;//因为指定了string类型,是不可以存储int类型数据的。会自动报错。
集合也模仿着数组的这种做法,在创建对象的时候明确元素的数据类型。这样就不会在有问题了。
而这种技术被称为:泛型。
泛型:是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。参数化类型,把类型当作参数一样的传递。
格式:
<数据类型>
此处的数据类型只能是引用类型。
好处:
A:把运行时期的问题提前到了编译期间 --回想上边数组报错
B:避免了强制类型转换
C:优化了程序设计,解决了黄色警告线
通过一段代码来认识泛型到底是什么。
public class GenericDemo { public static void main(String[] args) { // 创建 ArrayList<String> array = new ArrayList<String>();// 告诉我们array这个集合里面只能包含string类型。 // 添加元素 array.add("hello"); array.add("world"); array.add("java"); // array.add(new Integer(100)); // array.add(10); // JDK5以后的自动装箱。但是由于泛型的引入,把错误提前告知了。 // 遍历 Iterator<String> it = array.iterator(); while (it.hasNext()) { // ClassCastException // String s = (String) it.next();【如果不指定泛型,返回的是Object类型,前面的integer时看不出有问题的,只有黄色警告线。但是这里会报 // 错。 integer转不到string String s = it.next();// 已经是String不用再强制类型转换。 System.out.println(s); }
<span style="font-family: Arial, Helvetica, sans-serif;"></span>
相关文章推荐
- 《java入门第一季》之泛型引入
- JAVA反射机制
- Spring mybatis Access denied for user 'root'@'localhost' (using password:YES)
- Spring MVC 教程,快速入门,深入分析
- JAVA - 回调机制
- 学习SpringMVC(二十三)之拦截器相关
- Spring 系列: Spring 框架简介
- LeetCode小试
- 编码问题
- JAVA DOM4j解析XML数据到自定义javabean
- 管道流PipedInputStream,PipedInputStream、操作(字节数组,字符数组,字符串)流
- JAVA DOM4j解析XML数据到自定义javabean
- Java数组详解
- SpringMVC4.0.0需要的Jar包
- 你画我猜游戏的java实现
- java的动态代理机制详解
- 多图详解Spring框架的设计理念与设计模式(全篇)
- Java动态代理与Cglib库
- 《深入理解Java虚拟机》读后总结 (一)JVM内存模型
- 多图详解Spring框架的设计理念与设计模式(1-2-3-4-5-6)