黑马程序员-体验泛型
来源:互联网 发布:2017年昆广网络套餐 编辑:程序博客网 时间:2024/05/21 22:25
/***@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.lang.reflect.InvocationTargetException;import java.util.ArrayList;/** * @ClassName:GenericTest * @Description TODO * @date 2011-7-10 */public class GenericTest {/** * @throws Exception * @Title:main * @Description:TODO * @Param:@param args * @Return:void * @throws */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubArrayList 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(0);//不需要再进行强制类型转换ArrayList<Integer> collection3=new ArrayList<Integer>();//在编译前,通过泛型限定了类型为Integer,但当编译完成后,将会去掉类型的信息System.out.println(collection3.getClass()==collection2.getClass());//因此上一句代码将返回True,说明他们实际就是一份字节码。//collection3.add("abc");//下面通过反射穿透泛型,为collection3添加字符串collection3.getClass().getMethod("add", Object.class).invoke(collection3, "abc");System.out.println(collection3.get(0));}}
参数化类型可以引用一个原始类型的对象,编译报告警告
Collection<String> c=new Vector();
原始类型可以引用一个参数化类型对像,编译报告警告
Collection c=new Vector<String>();
参数化类型不考虑类型参数的继承关系
Vector<String> v =new Vector<Object>(); //错误
Vector<Object> v=new Vector<String>();//错误
在创建数组实例时,数组的元素不能使用参数化类型,例如,下面语句有错误
Vector<Integer> vectorList[]=new Vector<Integer>[10];
- 黑马程序员-体验泛型
- 黑马程序员---Hello word开发初体验
- 《黑马程序员》泛型复习
- 黑马程序员之泛型
- 黑马程序员-泛型总结
- 黑马程序员-----关于泛型
- 黑马程序员-泛型延伸
- 黑马程序员-泛型总结
- 《黑马程序员》 泛型入门
- 黑马程序员---泛型总结
- 黑马程序员-泛型基础
- 黑马程序员--泛型学习
- 黑马程序员--泛型应用
- 黑马程序员-泛型理解
- 黑马程序员------泛型概述
- 黑马程序员-----面向对象初体验(一)
- 黑马程序员-ios入门初体验及个人体会
- 黑马程序员——02-OC初体验
- ajax 异步
- oracle 函数
- windows脚本问题
- clewn gdb 调试程序
- 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告
- 黑马程序员-体验泛型
- 插件写法
- Ice 多线程模式
- Please enter the Path for STRCAT.ASM的解决方法
- QTP不能正确录制对象
- Android: Android 设计思想
- monkeyrunner使用小心得
- 使用structs2.0开发一个简单的用户登录程序
- Windows7下架设VPN双向通道