真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

初學(xué)J2ME需要注意什么

這篇文章主要講解了“初學(xué)J2ME需要注意什么”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“初學(xué)J2ME需要注意什么”吧!

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了慶陽免費(fèi)建站歡迎大家使用!

下面請(qǐng)看一段代碼:

/*
* 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("默認(rèn)圖像控件",
Image.createImage("/Image.png"),
Item.LAYOUT_DEFAULT,
"第一張圖片");
img2=new ImageItem("默認(rèn)圖像控件",
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();
}
}
}


這是一個(gè)ImageItemt的演示程序,我在實(shí)現(xiàn)的前提下加了一點(diǎn)東西導(dǎo)致它異常,異常如下:

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拋出空指針異常,其中用到的對(duì)象主要有兩個(gè),mainform和img1、img2,然而image載入拋出的應(yīng)該可由catch(Exception err)捕獲到,所以基本可以確定是mainform產(chǎn)生的異常,可是問題來了,mainform我已經(jīng)在構(gòu)造函數(shù)里面實(shí)例化了,而且也是類的成員變量,應(yīng)該隨對(duì)象存在,可是為什么會(huì)異常呢?

百思不得其解。。。。

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

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

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

感謝各位的閱讀,以上就是“初學(xué)J2ME需要注意什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)初學(xué)J2ME需要注意什么這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


標(biāo)題名稱:初學(xué)J2ME需要注意什么
當(dāng)前地址:http://weahome.cn/article/gdgejo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部