程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2me開發中利用泛型和基礎類型的主動拆箱

J2me開發中利用泛型和基礎類型的主動拆箱

編輯:J2ME

泛型:
Java 語言中最輕易引發錯誤的因素之一 -需要不斷地將表達式向下類型轉換(downcast)為比其靜態類型更為具體的數據類型。比如將Vector中的數據取出來之後,強迫轉換為實際類型。在 JDK1.5之前,不得不這樣做,JDK1.5之後,程序員再也不用這麼辛苦了.

代碼 
  1.  //JDK1.5   Vector<String> v=new Vector<String>();  
  2.  v.add("A");   String a=v.elementAt(0);//留心這裡,get出來之後,直接就是String類型的了  
  3.    //JDK1.4  
  4. Vector v=new Vector();  v.add("A");  
  5.  String b=(String)v.elementAt(0);//JDK1.4的作法  

基礎類型的主動拆箱/裝箱

Java中的聚集類,只能處理對象類型,對於基礎類型boolean,byte,short...int,long等,要想放到聚集中往,則必需轉換成對應的包裝類 Boolean,Byte,Short...Integer,Long等類型。而JDK1.5開端支撐的基礎類型與對應包裝類型的主動拆箱/裝箱,則省往了許多麻煩。

代碼 
  1.  //JDK1.5   Integer a=1;  
  2.  Integer b=2;   System.out.println(a+b);  
  3.   //JDK1.4  
  4.  Integer a=new Integer(1);   Integer b=new Integer(2);  
  5.  System.out.println(a.intValue()+b.intValue());  

很惋惜的是,在J2ME風行的開發平台上既不能用泛型,也不能用基礎類型的主動拆/裝
這裡先容一種方法,使大家可以在開發J2ME的時候也享受到Java的新功效,下降大家的工作難度

1.需要的安裝的軟件及下載地址
JDK1.5+ sun.com
wtk sun.com
eclipse eclipse.org
ant ant.apache.org
antenna sf.Net/projects/antenna

2.開端
新建項目,選擇1.5或更高的編譯級別,類庫中導進j2me開發需要的midp和cldc包,然後就可以用泛型寫J2ME的代碼了

3.編譯,預校驗,打包
采用ant和antenna來幫助
留心編譯時不能指定source為1.5以下
應用antenna的wtkpreverify校驗
將資源文件打進包中
應用Jad天生器產生jad文件

4.留心事項
a.字符串連接,JDK1.5會主動用StringBuilder來優化,這個類在J2ME中不存在,留心在代碼中不能省事直接用 "a"+i+"b",需要用StringBuffer來寫
b.基礎類型的裝箱,即由基礎類型轉為包裝類型,編譯器采用類似 Integer.valueOf(int)的方法來轉的,此方法在J2ME中不存在,需要留心,涉及到基礎類型轉包裝類型的,要在代碼中自己轉,以避免呈現上面的方法調用

附編譯腳本:

 

代碼 

  1. <?XML version="1.0"?>  <project name="project" default="build" basedir=".">  
  2.     <!-- 設置WTK屬性. -->      <property name="wtk.home" value="C:\WTK25" />  
  3.     <property name="wtk.midp.version" value="1.0" />      <property name="wtk.cldc.version" value="1.0" />  
  4.     <!-- Ant J2ME任務定義 -->      <taskdef resource="antenna.propertIEs" 
    classpath="D:\eclipse\antenna.jar"/>  
  5.     <!-- 設置 -->      <property name
  6. ="jar.name" value="Test"/>  
  7.     <target name="build">          <!-- 編譯 -->  
  8.         <Javac srcdir="src" destdir="classes" classpath="${wtk.home}\lib\cldcapi10.jar;${wtk.home}\lib\midpapi10.jar"/>               <!-- 打包 -->  
  9.         <jar destfile="${jar.name}.jar" basedir="classes"/>          <!-- 預校驗 -->  
  10.         <wtkpreverify jarfile="${jar.name}.jar"/>          <!-- 打進資源 -->  
  11.         <exec executable="jar.exe">              <arg line="-uf ${jar.name}.jar -C res ."/>  
  12.         </exec>      </target>  
  13. </ project>  
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved