Ir ao conteúdo
  • Cadastre-se
Adriano da Silva Santos

Java erro array required, but Usuarios found

Recommended Posts

Estou com um problema na linha 07:

 

package Classes;


public class Dados {
    
    private Usuarios  users [] = new Usuarios[50];
    
    private int contusuarios = 0;
    
     
      public Dados(){
          Usuarios users = new Usuarios("0001","adriano","santos","321","1");
          users [contusuarios] = users;
          contusuarios ++;
                
}

    
      O erro que aparece nessa linha é o seguinte: "array required, but Usuarios found ". Como posso resolver esse problema?
    

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adriano da Silva Santos Olá. Experimenta fazer essa mudança: 

Usuarios users[contusuarios] = new Usuarios("0001","adriano","santos","321","1");
contusuarios++;

Recomendo dar nomes mais sugestivos para suas variáveis, ou fazer uso da nomenclatura do Java para essa variável: contaUsuarios

Agora é preciso testar para ver se resolve o problema. Não rodei o código aqui ainda

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adriano da Silva Santos Experimenta deixar assim:

users[contusuarios] = new Usuarios("0001","adriano","santos","321","1");
contusuarios++;

 

adicionado 9 minutos depois

Só q é o seguinte amigo. Do modo como está fazendo como você vai adicionar mais usuários?

Uma das formas de resolver a questão é fazendo com que o construtor receba os parâmetros referentes aos dados do novo usuário

Estou respondendo de forma rápida mas o ideal é rodar esse código para ajustar o mesmo

Vou rodar aqui e depois retorno

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adriano da Silva Santos Olá. Daria para postar o código da classe Dados e da classe Usuarios?

Já daria uma dica aqui: Dê nome no singular para suas classes: Dado (ou DadoUsuario ) e Usuario

Desde já agradecemos 🙂

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Adriano da Silva Santos Olá. Desculpa a demora em dar uma resposta mais adequada

Segue uma forma de fazer o que você quer:

Classe Usuarios:

public class Usuarios {

    private int codigo;
    private String nome;

    public Usuarios(int codigo, String nome) {
        this.codigo = codigo;
        this.nome = nome;
    }

    public int getCodigo() {
        return codigo;
    }

    public String getNome() {
        return nome;
    }
}

Classe Dados:

public class Dados {

    private Usuarios users[] = new Usuarios[50];

    private int contaUsuarios = 0;

    public void preecherDadosUsuarios(int codigo, String nome) {
        users[contaUsuarios] = new Usuarios(codigo, nome);
        contaUsuarios++;
    }

    public void imprimirDadosUsuarios() {
        for (int i = 0; i < contaUsuarios; i++) {
            System.out.println(users[i].getCodigo());
            System.out.println(users[i].getNome());
        }
    }
}

E aí fazer algo assim:

Dados dados = new Dados();

dados.preecherDadosUsuarios(1100, "José");
dados.preecherDadosUsuarios(1450, "Joana");
dados.preecherDadosUsuarios(2500, "Jessi");

dados.imprimirDadosUsuarios();

Vê se seria isso, amigo 😃

Compartilhar este post


Link para o post
Compartilhar em outros sites
public Dados(){
    Usuarios users = new Usuarios("0001","adriano","santos","321","1"); // O problema está aqui
    users [contusuarios] = users;
    contusuarios ++;                
}

Você não pode usar 'users' porque esse nome já foi usado para criar o vetor. O Java acha que você está tentando recriar o vetor, quando na verdade é só para adicionar. Troque o nome dessa variável e veja se resolve.

package Classes;

public class Dados {
    private Usuarios users[] = new Usuarios[50];
    private int contusuarios = 0;

    public Dados(){
        Usuarios novo = new Usuarios("0001","adriano","santos","321","1");
        users[contusuarios] = novo;
        contusuarios++;
    }

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@AdrianoSiqueira  A questão é q, fazendo dessa forma, como vai ser possível inserir um novo usuário?

No construtor está sendo definido um usuário, e digamos q eu queira um segundo usuário

É esse o ponto 

Claro q daria para inserir um novo usuário em outra parte da classe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×