public class Test
{
public static void main(String[] args)
{
/* 此处注释掉的代码,有错误; 思考为什么 后面的替代代码没有错误
Person[] persons = new Person[2];
persons[0].personName = "tsh0";
persons[0].personCode = "0";
*/
Person[] persons = new Person[2];
for(int i=0; i<persons.length; i++)
{
Person person = new Person();
person.personName = "tsh" + i;
person.personCode = String.valueOf(i);
persons[i] = person;
}
System.out.println(persons[1].personName);
}
public static class Person
{
public String personName;
public String personCode;
}}
{
public static void main(String[] args)
{
/* 此处注释掉的代码,有错误; 思考为什么 后面的替代代码没有错误
Person[] persons = new Person[2];
persons[0].personName = "tsh0";
persons[0].personCode = "0";
*/
Person[] persons = new Person[2];
for(int i=0; i<persons.length; i++)
{
Person person = new Person();
person.personName = "tsh" + i;
person.personCode = String.valueOf(i);
persons[i] = person;
}
System.out.println(persons[1].personName);
}
public static class Person
{
public String personName;
public String personCode;
}}
这个已经实例化了,所以不会报null exception, 楼主需要好好看下 java数组的特性
而Person person = new Person(); 创建了对象,所以不会报错
Person[] persons = new Person[2];
persons[0].personName = "tsh0";
persons[0].personCode = "0";
一二句间加persons[0]=new Person();
后面用空引用当然就null了~