【发布时间】:2013-11-07 19:28:01
【问题描述】:
我有一堂课如下:
package com.aci.golfgames;
import java.util.ArrayList;
public class Course {
private String name;
private int noOfTees;
private ArrayList<Tee> tees;
public Course(){
// Build a course with some tees.
name = "ABC Country Club";
ArrayList<Tee> tees = new ArrayList<Tee>();
tees.add(new Tee("White", 126, 70.4));
tees.add(new Tee("Red", 128, 75.2));
tees.add(new Tee("Blue", 126, 71.4));
noOfTees = 3;
}
public String getCourseName(){
return this.name;
}
public ArrayList<Tee> getTees(){
return tees;
}
public int getNoOfTees(){
return this.noOfTees;
}
}
当我尝试实例化 ArrayList 字段 tees 时,似乎我创建的 ArrayList 与在对象 Course 中声明为字段的 ArrayList 不同。 IOW,this.tees 与 tees 不同。如果我删除该行:
ArrayList<Tee> tees = new ArrayList<Tee>();
我在运行时在 tees.add(...) 处遇到空指针异常,我认为是因为 ArrayList 尚未实例化。
这里有什么问题?如何实例化 ArrayList?注意:tees ArrayList 中的条目数会因对象而异,因此 ArrayList 而不仅仅是一个数组。这里的代码只是定义一个Course用于测试。
谢谢。
【问题讨论】: