JAVA - 添加到arrayList一个String

时间:2013-10-27 15:18:24

标签: java arraylist

我正在尝试发送来自用户输入的ArrayList字符串:

private static void adicionarReserva() {
    Scanner adiciona = new Scanner(System.in);
    System.out.println("Numero da pista: ");
        int nPista = adiciona.nextInt();
    System.out.println("Numero de jogadores: ");
        int nJogadores = adiciona.nextInt();
    System.out.println("Data Inicio: ");
        String data_inicio = adiciona.next();

    Reservas reserva = new Reservas(nPista, data_inicio);
    ArrayList<Jogadores> nome_jogador = new ArrayList(); 

    for (int i=1;i<=nJogadores;i++) {
        System.out.println("Nome Jogador: ");
        String nome = adiciona.next();
        nome_jogador.add(nome);
    }

    reserva.addJogadores(nome_jogador);

}

在我的班级名为:Reservas,我有这个:

public void addJogadores(Jogadores lista_jogadores) {
    this.lista_jogadores.add(lista_jogadores);
}

但我有这个错误:

nome_jogador.add(nome);
  

ArrayList类型中的方法add(Jogadores)不适用于参数(String)

这一个:

reserva.addJogadores(nome_jogador);
  

类型Reservas中的方法addJogadores(Jogadores)不适用于参数(ArrayList)

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:3)

这是非常有意义的错误。

这是您的ArrayList

ArrayList<Jogadores> nome_jogador = new ArrayList(); 
          ↑

你想插入什么?一个String,但它假设有Jogadores

现在查看您的addJogadores方法签名:

public void addJogadores(Jogadores lista_jogadores)
                         ↑

它接受Jogadoers个对象,而不是ArrayList

答案 1 :(得分:0)

如果Jogadores有一个接受Jogadores的构造函数,则必须传递类String的实例:

nome_jogador.add(new Jogadores(nome));

答案 2 :(得分:0)

ArrayList<Jogadores> nome_jogador = new ArrayList();

您只能添加Jogadores实例的对象,并且因为您尝试添加String(显然不是Jogadores的实例),它会为您提供错误。

答案 3 :(得分:0)

private static void adicionarReserva() {
    Scanner adiciona = new Scanner(System.in);
    System.out.println("Numero da pista: ");
        int nPista = adiciona.nextInt();
    System.out.println("Numero de jogadores: ");
        int nJogadores = adiciona.nextInt();
    System.out.println("Data Inicio: ");
        String data_inicio = adiciona.next();

    Reservas reserva = new Reservas(nPista, data_inicio);
    ArrayList<Jogadores> nome_jogador = new ArrayList(); 

    for (int i=1;i<=nJogadores;i++) {
        System.out.println("Nome Jogador: ");
        String nome = adiciona.next();
        nome_jogador.add(new Jogadores(nome));
    }

    reserva.addJogadores(nome_jogador);

}

在您的班级中称为:Reservas

public void addJogadores(ArrayList<Jogadores> lista_jogadores) {
    this.lista_jogadores.addAll(lista_jogadores);
}