读书人

大家帮小弟我看看这个就几行的代码是什

发布时间: 2012-01-30 21:15:58 作者: rapoo

大家帮我看看这个就几行的代码是什么问题好吗?
package com.swtdesigner;
import java.lang.Double;


public class TestFor {
public static boolean bit []={true,false,false,true};
public static int [] measure2= null ;
public static double [] measure= null ;
public static double [] Setmeasure2()
{
for(int i=0;i <10;i++)
{
measure[i] = bit.length*Math.random();
}
return measure;
}
public static void main(String [] args){

System.out.println(TestFor.Setmeasure2());

}



}

运行的时候它提示说Exception in thread "main " java.lang.NullPointerException
at com.swtdesigner.TestFor.Setmeasure2(TestFor.java:16)
at com.swtdesigner.TestFor.main(TestFor.java:22)



[解决办法]
空指针错误。
measure本身是空,并没有measure[0]、measure[1]之类的项。如果要用,不要把数组之类的设为空,不然很容易产生类似的错误
[解决办法]
public static double [] measure= null ;

measure[i] = bit.length*Math.random();
上面这句就有问题,因为measure是null,你把右边的值赋给左边measure[i],measure[i]当然是空的拉
[解决办法]
对空对象操作的问题

public static int [] measure2= null ;
public static double [] measure= null
你的程序在使用measure数组的时候并没有初始划它,在for循环中(当然可以是其他地方,但必须是在使用前)初始化就可以了;


public class TestFor {
public static boolean bit []={true,false,false,true};
public static int [] measure2= null ;
public static double [] measure= null ;
public static double [] Setmeasure2()
{
for(int i=0;i <10;i++)
{
measure = new double[10];
measure[i] = bit.length*Math.random();
}
return measure;
}
public static void main(String [] args){

System.out.println(TestFor.Setmeasure2());

}



}

读书人网 >J2SE开发

热点推荐