哪位知道java范型?请给讲解下,谢谢了!

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【peijiafu】截止到2008-07-27 15:19:20的历史汇总数据(不包括此帖):
    发帖的总数量:0                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:---------------------结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    泛型就是在集合中规定只能放一种对象。
    如:
    List<String> list = new ArrayList<String>();
      

  3.   

    就是规定里面放什么类型。。
    当然Map就对应的有key和value了。
    Map<String,Integer> m ;
      

  4.   

    hehe
    楼上说的不对吧
    List<Object> list = new ArrayList<Object>();
    请问,你能把你定义的类add吗?????显然不行
    但是,List<? extends Object> list = new ArrayList<<? extends Object>();
    可以随便add吧!!!!!!
      

  5.   

    事实上,Generics(所谓的泛型)不是很有用。等你有点编程经验才能体会到,如果新手会觉得Generics很好用。
      

  6.   

    1.5后才有了泛型
    就是规定了数据类型后不能再改变,和FINAL有点象
      

  7.   

    人家也没问怎么样才能随便add呀。
    我的理解就是泛型规定了add哪种类型,不就这样么。
    当然list<? extends Object>就可以随便放了。
    就是随便放,那你放了Integer,又放String,Boolean,那这个list还有什么作用啊。只是存了,但怎么取啊。
    其实里面就是放类的实例还有他的子类的实例,是这样么
      

  8.   

    没有泛型的时候得这样
    List myList = new ArrayList();
    myList.add("first");
    String str = (String)myList.get(0); 
    取得时候要强制转换一下
    有了泛型以后就不用了
    List<String> myList = new ArrayList<List>();
    myList.add("first");
    String str = myList.get(0);
    直接取出来就是String.
      

  9.   

    你是错误的吧。
    据我所知
    List <? extends Object> list = new ArrayList < <? extends Object>();这种语法无法add。
      

  10.   

    范型方便了编译时类型检查,有什么不好的地方吗?
    和java一直以来坚持的安全思想是一致的。
      

  11.   

    泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。
      

  12.   

    List  <? extends Object> list = new ArrayList  <  <? extends Object>();
    好像这么new都是错的。
    这种声明方法只是为了调用方法的时候方便,可以说是为了支持多态性,但add的时候就麻烦了。感觉不算是比较好的语法。
      

  13.   

    就是给个标准,让该集合里只能装范型规定的类型的对象
    比如ArrayList<String> li = new ArrayList<String>();
    表示声明的这个LI集合中只能放STRING类型的对象进去,你放别的类型的对象是放不进去的,要报错
    而且你从集合里把他取出来的时候直接就是一个STRING 对象了,不用去做什么强转的工作了
    用起来比较方便
      

  14.   

    主要是方便,其实就是编译器增加了点功能。jvm不受影响。增强了编译时可以进行的类型检查。避免了一些不必要的错误。
    使用强制类型装换的时候,出问题也只能到运行的时候才发现,而通过反省就可以尽早的发现问题并解决。
      

  15.   

    RE:  hehe 
         楼上说的不对吧 
          List <Object> list = new ArrayList <Object>(); 
         请问,你能把你定义的类add吗?????    当然可以,你不晓得所有的类都是继承自OBJECT唆,只要是这样写的,所有的类都可以ADD()进去哈
      

  16.   

    haicc 的<? extends Object>是表示任何一个继承了Object的类的对象,语法上肯定是不成立的,不能够说的太绝对,一种事物的存在就必定有他的理由.只是看个人爱好来决定使用与否.基本上oklinsong的实际例子是正确的.
      

  17.   

    core 2(第七版)基础部分的最后一章详细的介绍了泛型,楼主可以去看下