国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

在Eclipse 3.1體驗(yàn)J2SE 5.0新特性六

2019-11-18 13:01:28
字體:
供稿:網(wǎng)友

  本文將介紹J2SE 5.0中三個(gè)比較重要的特性:枚舉類型,注釋類型,范型, 并在此基礎(chǔ)上介紹在如何在Eclipse 3.1開發(fā)環(huán)境中開發(fā)枚舉類型, 注釋類型和范型應(yīng)用。
  
  J2SE 5.0 (Tiger)的發(fā)布是java語言發(fā)展史上的一個(gè)重要的里程碑,是迄今為止在 Java 編程方面所取得的最大進(jìn)步。
  
  J2SE 5.0提供了很多令人激動(dòng)的特性。這些特性包括范型(generics)的支持, 枚舉類型(enumeration)的支持, 元數(shù)據(jù)(metadata)的支持, 自動(dòng)拆箱(unboxing)/裝箱(autoboxing), 可變個(gè)數(shù)參數(shù)(varargs), 靜態(tài)導(dǎo)入(static imports), 以及新的線程架構(gòu)(Thread framework)。
  
  隨著J2SE 5.0的推出, 越來越多的集成開發(fā)環(huán)境(IDE)支持J2SE 5.0的開發(fā)。 聞名的開源Java IDE Eclipse從3.1M4開始支持J2SE 5.0的開發(fā), 目前最新的版本是3.1RC4。
  
  本系列將介紹J2SE 5.0中三個(gè)比較重要的特性: 枚舉類型,注釋類型,范型, 并在此基礎(chǔ)上介紹在如何在Eclipse 3.1開發(fā)環(huán)境中開發(fā)枚舉類型, 注釋類型和范型應(yīng)用。本文將介紹范型。
  
  3. 范型
  
  3.1范型(Generics)簡介
  
  J2SE 5.0中的最顯著的變化之一是添加對泛型類型的支持。在J2SE 1.4 以及之前的版本中, Java程序并不是類型安全的。例如, Collection framework中定義的List, Map等容器類的元素都是Object類型,即這個(gè)類包含的元素是Object對象。 使用這種方式實(shí)現(xiàn)的列表,可以用來操作整數(shù),實(shí)數(shù), 字符串或者任何對象類型。例如
  
  清單3.1.1 類型不安全的代碼示例
  
  List stringList = new ArrayList();
  stringList.add("abcde");
  String str = (String)stringList.get(0);
  
  這種方法實(shí)現(xiàn)的列表需要使用強(qiáng)制類型轉(zhuǎn)換(又稱顯示造型),因此不是類型安全的。 在上面這段代碼種,雖然變量名為stringList, 但是我們?nèi)匀豢梢园岩粋€(gè)整型對象添加到這個(gè)隊(duì)列中,例如,
  
  清單3.1.2 類型不安全的代碼示例
  
  stringList.add(new Integer(5));
  
  在這種情況下, 從字符列表中獲取對象時(shí), 強(qiáng)制類型轉(zhuǎn)換就會(huì)導(dǎo)致運(yùn)行時(shí)異常。
  
  清單3.1.3 類型不安全的代碼示例
  
  String str = (String)stringList.get(1); //runtime exception
  
  范型是Java邁向類型安全的一個(gè)重要步驟,使用范型可以構(gòu)造出類型安全的代碼。
  
  3.2聲明范型
  
  所謂范型是指類型參數(shù)化(parameterized types)。Java是一種強(qiáng)類型的語言,在J2SE 1.4以及以前的版本中,我們在定義一個(gè)Java類,接口或者方法的時(shí)候,必須指定變量的類型。
  
  在聲明范型類、接口或者函數(shù)時(shí),定義變量的時(shí)候不指定某些變量的具體類型, 而是用一個(gè)類型參數(shù)代替。在使用這個(gè)類,接口,或者方法的時(shí)候, 這個(gè)類型參數(shù)由一個(gè)具體類型所代替。
  
  3.2.1 范型類
  
  下面的例子中介紹了如何創(chuàng)建一個(gè)最簡單范型類
  
  清單3.2.1, 最簡單的范型類
  
  public class GenSample {}
  
  類名后面帶有表明了這個(gè)類是范型類,其中T被成為類型參數(shù)(type parameter), 在使用范型的時(shí)候,類型參數(shù)可以被替換為任何的類類型,但是不能是原始類型(PRimitive type),例如int,double。
  
  下面通過一個(gè)列表的例子來具體說明假如聲明范型類和類型參數(shù)的用法。
  
  清單3.2.2, 范型列表
  
  public class GenList {
  private T[] elements;
  private int size = 0;
  private int length = 0;
  
  public GenList(int size) {
  elements = (T[])new Object[size];
  this.size = size;
  }
  
  public T get(int i) {
  if (i < length) {
  return elements[i];
  }
  return null;
  }
  
  public void add(T e) {
  if (length < size - 1)
  elements[length++] = e;
  }
  }
  
  在列表的例子中,類型參數(shù)T被用來表示列表中的元素的類型,即這個(gè)列表中的元素是T類型的。在使用這個(gè)列表時(shí), 這個(gè)類型參數(shù)T會(huì)被具體的類型所替代。
  
  注重,由于T時(shí)類型參數(shù)不是具體的類,所以不能使用new操作符創(chuàng)建T的對象,例如new T(), 或者,new T[10]。
  
  3.2.2 范型接口
  
  在J2SE 5.0中,不僅僅可以聲明范型類,也可以聲明范型接口, 聲明范型接口和聲明范型類的語法類似,也是在接口命稱后面加上。例如:清單3.2.3,范型接口
  
  public interface GenInterface {
  void func(T t);
  }
  
  3.2.3聲明多個(gè)類型參數(shù)的范型類或者接口清
  
  在聲明范型類的時(shí)候, 可是使用多個(gè)類型參數(shù)。多個(gè)類型參數(shù)之間用逗號分開, 例如:
  
  清單3.2.4, 多個(gè)類型參數(shù)的范型類
  
  public class GenMap {}
  
  Eclipse 3.1的類創(chuàng)建向?qū)еС謩?chuàng)建范型類, 如下圖所示

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 贵阳市| 东港市| 紫阳县| 德州市| 准格尔旗| 临澧县| 昔阳县| 霍州市| 聂拉木县| 宜君县| 安阳县| 长宁区| 石首市| 中牟县| 镇平县| 巴里| 潜山县| 芷江| 临沧市| 徐闻县| 安阳县| 剑河县| 迭部县| 大洼县| 南阳市| 南靖县| 贵定县| 怀化市| 福贡县| 分宜县| 金乡县| 东安县| 建阳市| 都江堰市| 大田县| 蒙城县| 和顺县| 通河县| 临澧县| 永春县| 罗江县|