Java中的空指针异常怎么对付?

以下是源代码:packagetank;importjava.applet.Applet;importjava.applet.AudioClip;importjava.aw... 以下是源代码:
package tank;

import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;

public class BltTank extends Applet
implements Runnable{
boolean fGameIsLoaded;
int fStatus;
static Font fFont1 = new Font("Times", 1, 10);
int fYMidScr;
Image fOffScrImage;
static int fFont1Height;
int fScreenHeight;
ZWorld fWorld;
int fScreenWidth;
int fXMidScr;
Graphics fOffScrGraphics;
static int fFont2Height;
Thread fThread;
AudioClip fBgrSnd;
Image fTitleImage;
static Font fFont2 = new Font("Times", 1, 20);
int fStatsLeftMargin;

public void run() {
System.out.println("run()");
createGame();
enterIntro();
fBgrSnd.loop();
}

public void createGame() {
System.out.println(fGameIsLoaded);
if(!fGameIsLoaded) {
fScreenWidth = size().width; //int 类型
//size()方法,return Dimension对象 width是宽度
fScreenHeight = size().height;
// return 高度
fXMidScr = fScreenWidth / 2;
// 高度 / 2
fYMidScr = fScreenHeight / 2;
//高度 / 2;
fOffScrImage = createImage(fScreenWidth, fScreenHeight);
fOffScrGraphics = fOffScrImage.getGraphics();
fOffScrGraphics.setFont(fFont1);
FontMetrics fontmetrics = fOffScrGraphics.getFontMetrics();
//拿到当前字体的字体规格
fFont1Height = fontmetrics.getHeight();
//拿到高度
fStatsLeftMargin = fontmetrics.stringWidth("ENEMIES");
fOffScrGraphics.setFont(fFont2);
fontmetrics = fOffScrGraphics.getFontMetrics();
fFont2Height = fontmetrics.getHeight();
fTitleImage = loadImage("title.gif");
}
}

public void init() {
System.out.println("我爱你00");
}

public void start() {
System.out.println("你好");
if(fThread == null) {
fThread = new Thread(this);
fThread.start();
}
}

public void destroy() {
System.out.println("dsddfs");
}

private void enterIntro() {
fStatus = 1;
fWorld.RemoveAllObjects();
}

public Image loadImage(String s) { // s = title.gif
MediaTracker mediatracker = new MediaTracker(this);
System.out.println(getCodeBase().toString());
Image image = getImage(getCodeBase(), s);
//getImage(getCodeBase(), title.gif);
return image;
}

}

====================================================================

package tank;

public class ZWorld {

int fNumObjects;
public void RemoveAllObjects() {
fNumObjects = 0;
}
}
我不是要try{}catch() {}
而是要帮我解决这个程序中的这个异常,以及造成空指针引起的原因,
希望说详细点,越详细越好,拜托了,谢谢
这是异常信息:
Exception in thread "Thread-3" java.lang.NullPointerException
at tank.BltTank.enterIntro(BltTank.java:82)
at tank.BltTank.run(BltTank.java:34)
at java.lang.Thread.run(Unknown Source)
展开
 我来答
zy974400763
2010-02-26 · TA获得超过268个赞
知道小有建树答主
回答量:129
采纳率:0%
帮助的人:102万
展开全部
fWorld对象没有创建,调用它的方法当然会出现空指针异常了。
建议你程序的时候,为程序写一个Init的方法用来初始化对象,把该初始化的初始化了,这样就不容易遗漏。
小刚达人
2010-02-25 · TA获得超过121个赞
知道答主
回答量:97
采纳率:0%
帮助的人:82.5万
展开全部
try catch对付或者throw后再try catch
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乁Freedom
2010-02-25 · TA获得超过2128个赞
知道小有建树答主
回答量:1580
采纳率:0%
帮助的人:1414万
展开全部
出现空指针是程序员的问题,一般都是粗心,不然就是设计有问题
要说怎么对付,这完全应该是不能让它出现,就是细心点呗
你放在try里也解决不了问题啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3eb6fa4
2010-02-25 · 超过23用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:74.9万
展开全部
程序里多判断下对象是不是为空,如果为空就做为空的操作啦
例如:
String a = null;
if(a!=null){
a="baidu";
}else{
a="google";
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
onedear
2010-02-25 · TA获得超过147个赞
知道小有建树答主
回答量:186
采纳率:0%
帮助的人:0
展开全部
ZWorld fWorld //你初始化,这里他是null
在82行
fWorld.RemoveAllObjects(); //此时fworld仍是null
所以抛出nullpointerexception

初始化他就行了
ZWorld fWorld = new ZWorld();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式