大家帮我看看这个就几行的代码是什么问题好吗?
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());
}
}