class toStudent{
static student[] a;
public toStudent(){
}
public static student[] turn(String[][] b) throws IOException,NullPointerException{
a=new student[b.length];
for(int k=0;k<a.length;k++)
a[k]=null;
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
switch(j){
case 0: a[i].setnum(b[i][j]); break;
case 1: a[i].setname(b[i][j]); break;
case 2: a[i].setage(b[i][j]); break;
case 3: a[i].setsex(b[i][j]); break;
case 4: a[i].setjava(b[i][j]); break;
case 5: a[i].setc(b[i][j]); break;
case 6: a[i].setenglish(b[i][j]);break;
}
}
}
return a;
}
有什么错误啊 运行时出现了那个NullPointerException异常 如果用try{}catch(){}来处理的话 就不能进行转换了 等于说还是出再了这个NullPointerException 异常 希望帮我解决这个问题 其中student 是我自己定义的一个类型 为了将一个String的 二维信息转换成为一个student的信息
static student[] a;
public toStudent(){
}
public static student[] turn(String[][] b) throws IOException,NullPointerException{
a=new student[b.length];
for(int k=0;k<a.length;k++)
a[k]=null;
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
switch(j){
case 0: a[i].setnum(b[i][j]); break;
case 1: a[i].setname(b[i][j]); break;
case 2: a[i].setage(b[i][j]); break;
case 3: a[i].setsex(b[i][j]); break;
case 4: a[i].setjava(b[i][j]); break;
case 5: a[i].setc(b[i][j]); break;
case 6: a[i].setenglish(b[i][j]);break;
}
}
}
return a;
}
有什么错误啊 运行时出现了那个NullPointerException异常 如果用try{}catch(){}来处理的话 就不能进行转换了 等于说还是出再了这个NullPointerException 异常 希望帮我解决这个问题 其中student 是我自己定义的一个类型 为了将一个String的 二维信息转换成为一个student的信息
for(int k=0;k <a.length;k++)
a[k]=null; // 看这里, 你都把a[k]赋值为null, 即还没有为a[k]创建对象, 然后你下面就直接使用了a[k], 当然是错误的。
// a = new student[b.length]只是为数组a分配了存储student对象的空间, 但并没有创建student对象(如果你会C++, 这点与C++有区别, C++中此时会为数组中的元素创建对象, 而Java却不会)
for(int i=0;i <b.length;i++){
for(int j=0;j <b[i].length;j++){
switch(j){
case 0: a[i].setnum(b[i][j]); break;
case 1: a[i].setname(b[i][j]); break;
case 2: a[i].setage(b[i][j]); break;
case 3: a[i].setsex(b[i][j]); break;
case 4: a[i].setjava(b[i][j]); break;
case 5: a[i].setc(b[i][j]); break;
case 6: a[i].setenglish(b[i][j]);break;
}