这种错误通常是你的某个变量在不该为null的时候为null,
解决办法是在可能出现null的地方做异常处理。
比如:
if(s!=null){
i = Integer.parseInt(s); //只有s不为null时才能执行这句话。
}
或者:
try{
i = Integer.parseInt(s);
}catch(java.lang.NullPointerException e){
i = 0; //若s为null则i默认为0
}
解决办法是在可能出现null的地方做异常处理。
比如:
if(s!=null){
i = Integer.parseInt(s); //只有s不为null时才能执行这句话。
}
或者:
try{
i = Integer.parseInt(s);
}catch(java.lang.NullPointerException e){
i = 0; //若s为null则i默认为0
}
解决方案 »
- 求一个可以将JVM指令转换为java代码的工具
- 又一个好题,大家来做做
- 这段JAVA io代码一直出现问题,不知道为什么啊,还请高手帮忙,我已经郁闷几天了。。。
- 谁知道Protégé 3.0或者其他版本在哪里下载?
- return返回一个函数是什么用法?
- 切换窗口是运行的JAVA程序中的JTable被覆盖
- 在命令行下执行时,JDBC连ACCESS,显示没有合适的驱动!(初学JAVA请大哥们多帮忙)
- 请问Class转成EXE后能不能再反汇编?
- 关于内部类的问题!
- Patterns in Java Vol 1/2 by Mark Grand 谁有?
- java.sql.SQLException: No suitable driver
- 比较<<Thinking in java 2e>>与<<Java大学教程>>?欢迎
比如
private String name = ""; // 给它初始化一个值不让它为nullpublic boolean isNameEqual(String paraName) {
return name.equals(paraName);
}
就比下面这种要好
public boolean isNameEqual(String paraName) {
return newName.equals(name); // 这样如果paraName为空的话就会抛出一个 NullPointerException }当然,如果在程序中name可能被赋值为null的话
那就要这样写了
public boolean isNameEqual(String paraName) {
if (name != null) {
return name.equals(paraName);
}
else if (paraName != null) { // name 为 null 而paraName 不是
return false;
}
else { // 都为空
return true; // 根据你的需要,返回false也行
}
}至于
public class Animator extends java.applet.Applet implements Runnable{
Vector images;
int imgNumber;
int currentImage=1;
Thread thisThread;
public void init(){
imgNumber=new Integer(getParameter("imgNumber")).intValue();
for (int x=0;x<imgNumber;x++)
{Image img=getImage(getDocumentBase(),"img"+(x+1)+".jpg");
images.addElement(img);
}
}我觉得可以先给imgNumber=0;
然后还要判断
getParameter("imgNumber")是否为null
这样更好些
import java.awt.*;
import java.applet.*;
import vrml.external.Browser;
import vrml.external.Node;
import vrml.external.field.*;
import vrml.external.field.EventOutObserver;public class ScaleOberver extends Applet {
Browser browser;
Node sensor;
TextField theTextOfScale;
Label theScale;
public void start(){
browser=Browser.getBrowser(this);
sensor=browser.getNode("BALL");
DefObserver observer=new DefObserver();
observer.init(browser);
sensor.getEventOut("set_scale").advise((EventOutObserver)observer,(Object)theTextOfScale);
}public void init(){
super.init() ;
setLayout(null);
resize(100,100);
theTextOfScale=new TextField("",15);
theScale=new Label("The Scale Of Ball is:");
add(theScale);
theScale.reshape(85,20,150,20);
theTextOfScale.reshape(235,20,100,20) ;
}
}.html文件如下:
<HTML>
<HEAD>
<TITLE>
HTML Test Page
</TITLE>
</HEAD>
<BODY>
spere will appear below in a Java enabled browser.<BR>
<tr>
<td width="100%">
<center>
<embed src="sspere.wrl" border=0 height="450" width="100%">
</center>
</td>
</tr>
<APPLET
CODEBASE = "."
CODE = "advise.ScaleOberver.class"
NAME = "TestApplet"
WIDTH = 400
HEIGHT = 30
HSPACE = 0
VSPACE = 0
ALIGN = top
>
</APPLET>
</BODY>
</HTML>
是不是需要先下载?
import java.awt.*;
import java.applet.*;import java.lang.*;
import vrml.external.*;
import vrml.external.field.*;
import vrml.external.exception.*;public class AddRemoveTest extends Applet {
Browser browser=null;
Node theBase=null;
Node[] cone;
EventInMFNode addChildren;
public void init(){
try{
throw new NullPointerException("");
}
catch(NullPointerException e){
}
add(new Button("Add Cone"));
}
public void start(){
browser=Browser.getBrowser(this);
theBase=browser.getNode("Base");
addChildren=(EventInMFNode)theBase.getEventIn("addChildren");
//try{ cone=browser.createVrmlFromString("Shape{\n"+"appearance Appearance{\n"+
"material Material{\n"+"diffuseColor 0.2 0.2 0.8\n"+"}\n"+
"}\n"+
"geometry cone{}\n"+
"}\n");
}
public boolean action(Event event, Object what){
if(event.target instanceof Button){
Button b=(Button)event.target ;
if(b.getLabel() =="Add Cone"){
addChildren.setValue(cone);
}
}
return true;
}
}哪儿不对?