麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

在Eclipse 3.1體驗J2SE 5.0新特性六

2019-11-18 13:01:28
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品国产91久久久久久久妲己 | 国产伦久视频免费观看视频 | 在线a亚洲视频播放在线观看 | 黄色免费电影网址 | 精品小视频| 国产成人自拍小视频 | 久久免费视频精品 | 91精品国产手机 | 一级一级一级毛片 | 午夜生活理论片 | 国产精品视频中文字幕 | 亚洲成人福利在线观看 | 亚洲第一激情网 | 久久成人视屏 | 成人男女啪啪免费观看网站四虎 | 久久久噜噜噜久久熟有声小说 | 在线天堂中文字幕 | 亚洲国产成人一区 | 成年人在线视频 | 久久精品视频69 | 国产一级免费片 | 亚洲一区二区网址 | 久久国产午夜 | 91成人一区 | 精品国产一区二区三区久久久 | 欧美一级特级 | videos韩国 | 色吧久久 | 日本大片在线播放 | 一级观看免费完整版视频 | 日本欧美一区 | 中国黄色一级生活片 | 免费看日产一区二区三区 | 欧美黄色小视频 | 精品国产96亚洲一区二区三区 | 曰批全过程120分钟免费69 | 亚洲综合视频网站 | 香蕉视频1024 | 成人在线免费观看小视频 | 一区在线视频 | 欧美一级免费在线观看 |