繁体   English   中英

设置添加到List的元素,然后混乱

[英]Set elements added to List, then mess

所以基本上我有这个类League构造函数:

import java.util.*;

public class League {

    private String name;
    private List<Team> teamList;

    public League(String name) {        
        List<String> teamNames = new LinkedList<String>(Company.teamList);
        Collections.shuffle(teamNames);
        teamNames.subList(0, 5);

        for(int i = 0; i < teamNames.size(); i++){
            teamList.add(new Team(teamNames.get(i)));
        }
}
}

Company碰巧有一个名为teamListSet 当我调用System.out.println(teamNames.get(i))它向我显示了内容,很明显集合的元素在那里,但是当我尝试根据列表的元素创建一个新的Team对象时,字符串,它给了我一个NullPointerException 我不知道为什么会这样? 救命?

以下是Team类的代码,以备不时之需:

import java.util.HashMap;
import java.util.Map;


public class Team {

    protected Map<Integer, Player> teamPlayerMap;
    private String teamName;

    public Team(String name) {
        teamPlayerMap = new HashMap<Integer, Player>();
        teamName = name;
    }

    public String getTeamName() {
        return teamName;
    }


}

我认为问题在于:

private List<Team> teamList;

public League(String name) {        
    // etc...

    for(int i = 0; i < teamNames.size(); i++) {
        teamList.add(new Team(teamNames.get(i))); // This will throw!
    }
}

您需要创建一个实现List<Team>的类的实例,并将其分配给teamList 您尚未执行此操作,因此在调用teamList.add(...)时将抛出NullPointerException

解决方法是改成这样:

private List<Team> teamList = new ArrayList<Team>();

您必须初始化teamList:

private List<Team> teamList = new ArrayList<Team>();

问题是因为你没有创建teamList的实例我认为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM