为什么我在这个非常简单的NullPointerException
实例化中调用getParameter()
时会收到JApplet
?
public class TestPad extends javax.swing.JApplet {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
TestPad appletDefn = new TestPad();
TestPad.sSomeParam = (String)appletDefn.getParameter("sSomeParam");
appletDefn.init();
appletDefn.start();
}
});
}
private static String sSomeParam = "sSomeArg";
}
没有安全策略文件,没有其他软件包,只有两个库: a)swing-layout-1.0.4.jar b)JDK-1.6(默认)
答案 0 :(得分:1)
Applet
类中方法的实现:
public String getParameter(String name) {
return stub.getParameter(name);
}
因此transient private AppletStub stub
上的方法调用会抛出异常
Applet具有除正常应用程序之外的其他生命周期。我建议你看看official Java tutorials on Applets。
答案 1 :(得分:1)
init()
和run()
。它在任何时候都不会调用main(String[])
。main(String[])
,而不是使用applet查看器,我得出的结论是您正在运行'applet'。以这种方式运行 将 导致NPE,因为没有设置和初始化applet上下文/存根。这需要做一些工作。