您的位置:首页 > 编程语言 > Java开发

《java入门第一季》之泛型引入

2016-05-26 22:42 507 查看
泛型的引入:

首先看一段代码体会自动报错。

// 看下面这个代码 自动报错
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: