diy木质笔筒:java里的java.lang.NullPointerException问题,进来看!

来源:百度文库 编辑:高考问答 时间:2024/04/24 18:33:12
public class Darray {
double [][]d;
void method1(
int i,int j,
double valstart,double valend) {
double [][]d=new double [i][j];
double increment=(valend-valstart)/(i*j);
double val=valstart;
for(int m=0;m<d.length;m++) {
for(int n=0;n<d[m].length;n++){
d[m][n]=val;
val=val+valstart;
}
}
}
void display() {
for(int x=0;x<d.length;x++) {
for(int y=0;y<d[x].length;y++)
System.out.println("d["+x+"]["+y+"]="+d[x][y]);
}
}
public static void main(String[] args){
Darray da=new Darray();
da.method1(5,5,12.2,54.2);
da.display();
}
}
javac能通过,java的时候出现java.lang.NullPointerException
高手帮帮忙!

 
 
 
把 method1 方法里的第一行改成 d=new double [i][j]; 即可。

原来的 double [][]d=new double [i][j]; 是在 method1 里创建覆盖类变量 d 的一个也叫 d 的局部变量,
导致类变量 d 由始至终没有被赋值,所以当 display 方法被调用时,类变量 d 仍然是 null,
因此 display 里头的第一个 d.length 便导致 NullPointerException(空指针异常)被抛出。
 
 
 

在main中加个
try{
...
}catch(Exception... exception){
...
}
我现在没有编译程序先只能说这些!等我安装了后帮你试下