0

私はプログラマーの初心者ですが、自分のコードの間違いを見つけることができないようです。

オブジェクト(人)の配列リストがあり、インデックスの値を変数に保存したい:

public void randomCaptain(){
    Random dice = new Random ();
    int n = dice.nextInt(personList.size());
    Person theCaptain = personList.get(n);
    System.out.println(theCaptain);
}

まず、1 から配列リスト内の人数までの乱数が必要です。この後、スポット n の値が必要なため、arraylist の n 人を取得し、これを Person 'theCaptain' に保存します。personList.get(n)でこれを試しました。しかし、println でこの値を確認すると、「null」が返されます。配列などのサイズを確認しましたが、配列は空ではありません。それは問題ではありません。

編集

これは、配列が初期化されている部分です。

public class Team{
    ArrayList<Person> personList = new ArrayList<Person>();
    void init(){

    //Adding persons to the list

    personList.add(new Coach("Tesan de Boer", "Straatweg 45", 2222));
    personList.add(new GoalKeeper("Peter Post", "Straatweg 45", 2222, 1));
    personList.add(new GoalKeeper("piet puk", "Straatweg 45", 2222, 21));
    personList.add(new GoalKeeper("Siem van Aanhoolt", "Straatweg 45", 2222, 31));
    personList.add(new Captain("Denis van rijn", "Straatweg 45", 2222, 5));
    personList.add(new Fielder("Koen Weegink", "Straatweg 45", 2222, 2));
    personList.add(new Fielder("Jan-Willem Rufus op den Haar", "Straatweg 45", 2222, 3));
    personList.add(new Fielder("Tom Kraniker", "Straatweg 45", 2222, 4));
    personList.add(new Fielder("Leon het Kanon", "Straatweg 45", 2222, 6));
    personList.add(new Fielder("Robin Hogezant", "Straatweg 45", 2222, 7));
    personList.add(new Fielder("Loesoe de Kat", "Straatweg 45", 2222, 8));
    personList.add(new Fielder("Morris de Spee", "Straatweg 45", 2222, 9));
    personList.add(new Fielder("Rein Zoekers", "Straatweg 45", 2222, 10));
    personList.add(new Fielder("Darion Pok", "Straatweg 45", 2222, 11));
    personList.add(new Fielder("Achmed de Bom", "Straatweg 45", 2222, 12)); 
    }

これを size() で確認すると、正しく 15 が返されます。だから、それは問題ではないはずです。

概して:

    Team team= new Team();
        team.init();
        team.randomCaptain();

あなたが私を助けてくれることを願っています、ありがとう

4

2 に答える 2