【发布时间】:2019-01-02 23:29:39
【问题描述】:
我有一个名为 Tournament 的公共类,它有一个名为 Team 的嵌套私有静态类。
public class Tournament {
private Team[] teams;
private static int noOfTeams;
private Queue<Team> queue = new LinkedList<>();
Team teamA,teamB,winner;
public Tournament(int noOfTeams)
{
this.noOfTeams = noOfTeams;
generateTeams();
}
private void generateTeams()
{
for (int i = 0; i < noOfTeams; i++)
{
this.teams[i] = new Team(); // Returning Null here
this.teams[i].setId(i);
this.teams[i].setRank(i);
queue.add(this.teams[i]);
}
}
}
所以当我创建一个 Tournament 对象时。构造函数调用 generateTeams() 方法。当我运行 this 时,它在以下行返回 NullPointerException: this.teams[i] = new Team(); (以粗体突出显示)。
由于某种原因,它没有实例化 Team() 对象,因此将空值分配给 teams[i]
OOPS 和嵌套类的新手。可以的话详细解释一下。
提前致谢。
【问题讨论】:
-
'静态内部'是一个矛盾的术语。
标签: java class oop private inner-classes