gpt4 book ai didi

java - MIDLet 中的 nullPointerException

转载 作者:行者123 更新时间:2023-11-30 11:44:54 25 4
gpt4 key购买 nike

我编写了以下 Java 应用程序:

import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.midlet.MIDlet;


public class JavaApplication6 extends MIDlet
{
private static Form clockForm=null;
private static StringItem clockItem=new StringItem("hello", "World!");
private static ClockTask task=null;
private static Timer timer=null;

static class ClockTask extends TimerTask
{
private int count=0;
@Override
public void run()
{
count++;
clockItem.setText("hello "+count);
}
}
public static void JavaApplication6() throws Exception
{
clockForm=new Form("Clock");
clockItem=new StringItem("","0");
clockForm.append(clockItem);
}

@Override
public void startApp()
{
task=new ClockTask();
timer=new Timer();
timer.schedule(task,1000,1000);
Display.getDisplay(this).setCurrent(clockForm);}

@Override
public void pauseApp()
{}

public void destroyApp(boolean unconditional)
{}


public static void main(String[] args) {


JavaApplication6 test=new JavaApplication6();
test.startApp();



}
}

但是当我运行它时,它在 startApp() 的最后一行给我以下 exception;

Exception in thread "main" java.lang.NullPointerException
at javax.microedition.lcdui.Display.<init>(Display.java:420)
at javax.microedition.lcdui.Display.getDisplay(Display.java:447)
at javaapplication6.JavaApplication6.startApp(JavaApplication6.java:42)
at javaapplication6.JavaApplication6.main(JavaApplication6.java:56)

最佳答案

您创建了名为 JavaApplication6 的静态方法,因为它是构造函数。但事实并非如此。因此,当您说 JavaApplication6 test=new JavaApplication6(); 时,它不会被调用。因此 clockForm 保持未初始化状态,即 null。所以,行

Display.getDisplay(this).setCurrent(clockForm);

抛出 NPE,因为此时 clockFormnull

解决方案是从 public static void JavaApplication6() throws Exception 行中删除 static void。它应该看起来像

public JavaApplication6() 抛出异常

在这种情况下,它成为构造函数,一切都会正常工作。

祝你好运。

关于java - MIDLet 中的 nullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com