日期:2014-05-20  浏览次数:21108 次

Java中数组类怎样赋值
我是初学JAVA,在网上搜索的视频中的老师说让自已写一个自定义的类型数组,我试着这样去写,但是运行时出错,不明白是为什么,我试过如果不是自定义类型数组,而只是一个类就没有问题。请知道的同志给我讲解一下,非常感谢

package Anne.TestPackage;

public class TestArray {
private int id;
private String name;
public void setId(int id){
this.id=id;
}
public int getId(){
return id;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}


public static void main(String[] args) {
TestArray[] ta = new TestArray[5];

for (int i=0;i<5;i++){
ta[i].setId(i+5);
ta[i].setName("anne"+i);
int id=ta[i].getId();
String name=ta[i].getName();
System.out.println("id:"+id+",name:"+name);
}

  /* TestArray ta = new TestArray();

for (int i=0;i<5;i++){
ta.setId(i+5);
ta.setName("anne"+i);
int id=ta.getId();
String name=ta.getName();
System.out.println("id:"+id+",name:"+name);
}*/

}

}


------解决方案--------------------
初学者常见问题,没有初始化数组元素。

请在 for 循环开始位置,增加:
ta[i] = new TestArray();
------解决方案--------------------
如一楼。
TestArray[] ta中每一个对象都是TestArray类型。所以你要将已经实例化好的TestArray对象赋值给ta[i]才可以。初学java时经常会出现你这样的情况,忘记实例化对象就会出现空指针异常
------解决方案--------------------
ta[i]= new TestArray();
ta[i].setId(i+5);
ta[i].setName("anne"+i);
------解决方案--------------------
探讨

初学者常见问题,没有初始化数组元素。

请在 for 循环开始位置,增加:
ta[i] = new TestArray();