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

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

探索JDK1.5高級編碼特征

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

    本文中,我們將討論幾個在JDK1.5中新的語言特征,包括:

泛型(Generics)--為集合(collections)提供編譯時類型安全,無需每刻從Collections取得一個對象就進行強制轉換(cast)
增強的“for”循環(Enhanced For loop)--減少迭代器(iterator)的潛在錯誤(error-PRoneness)
自動置入/自動取出(Autoboxing/unboxing)--無需在基本類型(primitive types)(例如double)和包裝類型(wrapper types)(例如Double)之間人工地進行轉換。
類型安全的枚舉(Typesafeenums)--提供類型安全枚舉模式的各項好處。
靜態導入(Static import)--無需在使用其他類的靜態成員變量前綴其類名.這將使得代碼更為簡潔。
元數據(Metadata)--使編程人員避免編寫樣板化代碼(boiler plate code),并提供機會進行宣告式程式設計(declarative programming)。


    讓我們具體討論每個新特性,并看一些例子。

    泛型(Generics)

    泛型是JDK1.5中一個最“酷”的特征。通過引入泛型,我們將獲得編譯時類型的安全和運行時更小地拋出ClassCastExceptions的可能。在JDK1.5中,你可以聲明一個集合將接收/返回的對象的類型。在JDK1.4中,創建雇員名字的清單(List)需要一個集合對象,像下面的語句:

    List listOfEmployeeName = new ArrayList();

    在JDK1.5中,你將使用下面語句

    List listOfEmployeeName = new ArrayList();

    最“酷”的是,假如你試圖插入非string類型的值,你將在編譯時發現并且修正這類問題。沒有泛型,你會發現這樣一個bug,當你的客戶調用后會告訴你,你所編寫的程序拋出ClassCastException異常而崩潰。

    另外,當你從集合中得到一個元素時你無需進行強制轉換。故原先為:

    String employeeName = ((String) listOfEmployee.get(i));

    而下面的語句將比上面的更加簡單:

    String employeeName = listOfEmployee.get(i);

    不清楚對象的類型而強制轉換對象是不合理的,并且更重要的是,它將在運行時失敗。假使用戶無意間傳入一個包含string buffers類型而非string類型的集合,那結果會怎樣呢。在Listing A中,客戶被要求傳入一個編譯器無法強制的strings類型集合。Listing B中顯示了同樣的方法使用泛型是如何實現的。

    Listing A

    staticbooleancheckName(Collection employeeNameList, String name) {

    for (Iteratori = employeeNamList.iterator(); i.hasNext(); ) {

    String s = (String) i.next();

    if(s.equals(name)){

    return true;

    //print employee name here ......

    }

    }

    return false;

    }

 

    Listing B

    staticbooleancheckName(Collection employeeNameList, String name) {

    for (Iteratori = employeeNamList.iterator(); i.hasNext(); ) {

    if(i.next().equals(name)){



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 斗六市| 新巴尔虎右旗| 高平市| 泰来县| 伽师县| 华容县| 盐边县| 鹰潭市| 武夷山市| 涞水县| 营口市| 胶南市| 丹巴县| 介休市| 襄垣县| 华宁县| 遵义县| 宜章县| 邵武市| 光泽县| 灌阳县| 邹城市| 巴塘县| 洛隆县| 公主岭市| 扶绥县| 谢通门县| 泰顺县| 东安县| 赤壁市| 遵义市| 蒙阴县| 洞头县| 曲水县| 宝兴县| 吉水县| 隆德县| 怀宁县| 新田县| 慈利县| 油尖旺区|