0

I'm trying to send to a ArrayList Strings that come from the user input:

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);

}

In my Class called: Reservas, i have this:

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

But i have this error:

nome_jogador.add(nome);

The method add(Jogadores) in the type ArrayList is not applicable for the arguments (String)

And this one:

reserva.addJogadores(nome_jogador);

The method addJogadores(Jogadores) in the type Reservas is not applicable for the arguments (ArrayList)

Any one can help me out?

4

4 回答 4

3

这是你得到的非常有意义的错误。

这是你的ArrayList

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

你想插入什么?a String,但它应该有Jogadores它。

现在看看你的addJogadores方法签名:

public void addJogadores(Jogadores lista_jogadores)
                         ↑

它接受Jogadoers对象而不是ArrayList.

于 2013-10-27T15:20:56.793 回答
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);
}
于 2013-10-27T15:30:18.610 回答
0

你必须传递一个 class 的实例Jogadores,如果Jogadores有一个接受Stringthen 的构造函数:

nome_jogador.add(new Jogadores(nome));
于 2013-10-27T15:20:27.990 回答
0
ArrayList<Jogadores> nome_jogador = new ArrayList();

您只能添加作为 的实例的对象,Jogadores并且因为您试图添加 a String(显然不是 的实例Jogadores)它会给您一个错误。

于 2013-10-27T15:21:04.547 回答