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

黑马程序员-jdk1.5新特性--泛型

2011-07-10 09:26 274 查看
jdk1.5以前的集合类中存在的问题
ArrayList collection=new ArrayList();
collection.add(1);
collection.add(1L);
collection.add("abc");
int i=(Integer)arrayList.get(1);//编译要强制类型转换且运行时出错!
jdk1.5的集合类希望你在定义集合时,明确表示你要向集合中装哪种类型的数据,无法加入指定类型以外的数据
 
ArrayList<Integer> collection2=new ArrayList<Integer>();
collection2.add(1);
/*collection2.add(1L);
collection2.add("abc");*/
int i2=collection2.get(0);//不需要再进行类型转换
 
泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时会去除掉"类型"说明/**
*@Package:laladin.learn
*@Project:javaLearn
*@Title:GenericTest.java
*@Description:TODO
*@author Topdog topdog@163.com
*@date 2011-7-10上午09:17:22
*@version v1.0
*/
package laladin.learn;

import java.util.ArrayList;

/**
* @ClassName:GenericTest
* @Description TODO
* @date 2011-7-10
*/
public class GenericTest {

/**
* @Title:main
* @Description:TODO
* @Param:@param args
* @Return:void
* @throws
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList collection1=new ArrayList();

collection1.add(1);

collection1.add(1L);

collection1.add("abc");

int i=(Integer)collection1.get(1);//编译要强制类型转换且运行时出错!

ArrayList<String> collection2=new ArrayList<String>();

//collection2.add(1);

//collection2.add(1L);

collection2.add("abc");

String element=collection2.get(1);//不需要再进行强制类型转换

}

}

集合被泛型限定为特定类型,集合中只能存储同一种对象。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息