| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 765 人关注过本帖, 1 人收藏
标题:泛型浅谈~~~~~
取消只看楼主 加入收藏
天雷225
Rank: 1
等 级:新手上路
帖 子:3
专家分:5
注 册:2012-9-23
结帖率:0
收藏(1)
 问题点数:0 回复次数:0 
泛型浅谈~~~~~
一,为什么使用泛型呢?                     

     没有泛型的情况下,是使用Object类型来进行多种类型数据的操作。这个时候操作最多的就是针对该Object进行数据的强制转换,(比如将Object型转换为String型)。倘若类型不一致,编译器在编译过程中不会报错,但在运行时会出错。

二,使用泛型的好处   

     1,将运行时期的问题转移到了编译时期。

     2,因为定义集合时已指定了类型,所以避免了强转的麻烦。

     3,优化了程序设计。

 

泛型的简单例子                     

首先,我们来看看下面两个普通的class定义

public class getString {

private String myStr;

 

public String getStr() {

    return myStr;

}

 

public void setStr(str) {

    myStr = str;

}

}

 

public class getDouble {

private Double myDou;

 

public Double getDou() {

    return myDou;

}

 

public void setDou(dou) {

    myDou = dou;

}

          }

 

    这两个class除了所操作的数据类型不一致,其他机能都是相同的。现在,我们可以使用泛型来将上面两个class合并为一个,从而提高代码利用率,减少代码量。

        public class getObj<T> {

            private T myObj ;

           

            public T getObj() {

                return myObj;

            }

 

            public void setObj<T obj> {

                 myObj = obj;

              }

        }

 

    那么,使用了泛型后,如何生成这个class的实例来进行操作呢?请看下面的代码:

        getObj<String> strObj = new getObj<String>();

        strObj.setObj(“Hello Nissay”);

        System.out.println(strObj.getObj());

 

         getObj<Double> douObj = new getObj<Double>();

         douObj.setObj(new Double(“116023”));

         System.out.println(douObj.getObj());

 
搜索更多相关主题的帖子: 编译器 Object 程序设计 
2012-09-24 11:54
快速回复:泛型浅谈~~~~~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011340 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved