简体   繁体   English

JAVA-添加到arrayList一个字符串

[英]JAVA - Add to arrayList a String

I'm trying to send to a ArrayList Strings that come from the user input: 我正在尝试将来自用户输入的字符串发送到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);

}

In my Class called: Reservas, i have this: 在我的班级:Reservas中,我有这个:

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) ArrayList类型的方法add(Jogadores)不适用于参数(字符串)

And this one: 还有这个:

reserva.addJogadores(nome_jogador);

The method addJogadores(Jogadores) in the type Reservas is not applicable for the arguments (ArrayList) Reservas类型的方法addJogadores(Jogadores)不适用于参数(ArrayList)

Any one can help me out? 有人可以帮我吗?

It's very meaningful error you're getting. 这是一个非常有意义的错误。

This is your ArrayList : 这是您的ArrayList

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

What are you trying to insert to it? 您想插入什么? a String , but it suppose to have Jogadores in it. 一个String ,但是它假定里面有Jogadores

Now look at your addJogadores method signature: 现在查看您的addJogadores方法签名:

public void addJogadores(Jogadores lista_jogadores)
                         ↑

It accepts Jogadoers object and not an ArrayList . 它接受Jogadoers对象,而不是ArrayList

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

nome_jogador.add(new Jogadores(nome));
ArrayList<Jogadores> nome_jogador = new ArrayList();

仅允许您添加作为Jogadores实例的对象,并且由于您尝试添加String (显然不是Jogadores的实例),因此会产生错误。

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

}

In your Class called: Reservas 在您的班级中:Reservas

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

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

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