A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 卞潇洋 中级黑马   /  2012-11-22 13:10  /  1266 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学泛型感觉很难,也还有不懂的,在这说一下泛型的学习心得吧
在java5之前,非泛型的集合可以容纳任何类型对象,是的,这对强类型化语言来说,对程序员来说很不爽,所以引入泛型。
泛型通过增强集合的类型来处理放入和取出的两端,
  1. List<String> myList = new Array<String>();
  2. myList.add("Fred");
  3. myList.add(new Dog());
复制代码
输入得到保证,自然输出也能得到保证-------String s = myList.get(0);
但如果是混用泛型与非泛型方法的话,添加一个外部数据也不会造成错误。
  1. import java.util.*;
  2. public class TestBadLegacy{
  3.   public static void main(String[] args){
  4.    List<Integer> myList = new ArrayList<Integer>();
  5.   myList.add(4);
  6.   myList.add(6);
  7.   Inserter in = new Inserter();
  8.   in.insert(myList);
  9. }
  10. }
  11. class Inserter{
  12.   void insert(List list){
  13.       list.add(new String(42));
  14. }
  15. }
复制代码
但编译器会发出警告。可以将泛型理解成编译时保护。而这与数组的区别一显无余,如果将上述代码换成数组,就会报错,可以理解为数组同时提供编译时保护和运行时保护。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马