91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

初學J2ME需要注意什么

發布時間:2021-12-21 14:37:29 來源:億速云 閱讀:123 作者:iii 欄目:編程語言

這篇文章主要講解了“初學J2ME需要注意什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“初學J2ME需要注意什么”吧!

  下面請看一段代碼:

  /*
   * ImageItemDemo.java
   *
   * Created on 2005年7月24日, 下午1:45
   */

  import javax.microedition.midlet.*;
  import javax.microedition.lcdui.*;

  /**
   *
   * @author mark
   * @version
   */
  public class ImageItemDemo extends MIDlet implements CommandListener{
   private Command exitCommand=new Command("Exit",Command.EXIT,1);
   private Form mainform;;
   private ImageItem img1,img2;
  
   public void ImageItemDemo(){
   mainform=new Form("ImageItem Test");
   mainform.append("顯示各種ImageItem");
   mainform.addCommand(exitCommand);
   mainform.setCommandListener(this);

   }
   public void startApp() {
   try{
   img1=new ImageItem("默認圖像控件",
   Image.createImage("/Image.png"),
   Item.LAYOUT_DEFAULT,
   "第一張圖片");
   img2=new ImageItem("默認圖像控件",
   Image.createImage("/Image.png"),
   Item.LAYOUT_2|Item.LAYOUT_EXPAND|Item.LAYOUT_NEWLINE_BEFORE,
   "第二張圖片");
   }catch(Exception err){
   System.out.println("can not load....");
   }

   mainform.append(img1);
   mainform.append(img2);
   Display.getDisplay(this).setCurrent(mainform);
   }
  
   public void pauseApp() {
   }
  
   public void destroyApp(boolean unconditional) {
   }
  
   public void commandAction(Command c,Displayable d){
   if(c==exitCommand){
   destroyApp(false);
   notifyDestroyed();
   }
   }
  }


  這是一個ImageItemt的演示程序,我在實現的前提下加了一點東西導致它異常,異常如下:

  startApp threw an Exception
  java.lang.NullPointerException
  java.lang.NullPointerException
   at ImageItemDemo.startApp(+64)
   at javax.microedition.midlet.MIDletProxy.startApp(+7)
   at com.sun.midp.midlet.Scheduler.schedule(+270)
   at com.sun.midp.main.Main.runLocalClass(+28)
   at com.sun.midp.main.Main.main(+116)

  能找到異常原因嗎?

  首先確定是由startApp拋出空指針異常,其中用到的對象主要有兩個,mainform和img1、img2,然而image載入拋出的應該可由catch(Exception err)捕獲到,所以基本可以確定是mainform產生的異常,可是問題來了,mainform我已經在構造函數里面實例化了,而且也是類的成員變量,應該隨對象存在,可是為什么會異常呢?

  百思不得其解。。。。

  于是把ImageItemDemo()里的代碼移到startApp()里面,發現居然實現了,可以確定,就是沒有實例化mainform。原因何在?難道是J2ME要先執行startApp才執行構造函數??答案是否定的。startApp()只是程序運行的切入點,對象和類的構造依然還是由構造函數完成。一個提示,那真的是構造函數嗎?

  一個很明顯但是很容易被忽略的錯誤, public void ImageItemDemo(),它不是構造函數,甚至連構造函數的重載都不是,理由?限制了void類型。c++學了快1年了,確實沒有想過也沒有注意過這個問題,直接后果就是這樣,類在構造時候不會執行它,那么其中的mainform自然不會被實例化,而依然只是一個引用,何以談的上操作?

  改的方法很容易,把void去掉就可以了。

感謝各位的閱讀,以上就是“初學J2ME需要注意什么”的內容了,經過本文的學習后,相信大家對初學J2ME需要注意什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长治市| 巴东县| 寻乌县| 沁源县| 三河市| 盘山县| 米泉市| 平利县| 阳信县| 壶关县| 大渡口区| 合山市| 龙井市| 大石桥市| 隆子县| 运城市| 潜江市| 鲁甸县| 广平县| 拜泉县| 修水县| 遂溪县| 蕉岭县| 沙坪坝区| 丹巴县| 延安市| 色达县| 晋宁县| 阳信县| 巴林右旗| 山西省| 平顺县| 雅安市| 新蔡县| 梨树县| 股票| 桃江县| 兖州市| 云和县| 黔西| 建阳市|