Java swing

5 respostas
java
M

Galera boa noite, alguem pode me explicar porque nesse comando ele fica dizendo que string n pode ser convertido a um objeto? já tentei quase de tudo!

Objetc[] dados = {txtNome.getText(), txtCpf.getText(), txtLogin.getText(), txtData.getText(), txtEndereco.getText()};

5 Respostas

smatt

Seu Array recebe objetos e não String. Logo ele nunca aceitará isso. No caso, o que seria melhor é criar uma ArrayList, que é preenchida por um objeto. Este objeto é preenchido com variáveis vindas de outra classe modeladora.

Um exemplo aqui, so para voce entender melhor:

O ArrayList será carregado com cidades. E cada cidade tem quantidade de habitantes, um prefeito, densidade demografica, bairros etc.

Dai sua ArrayList terá cidades, sendo que cada uma será carregadas com esses dados.
Por isso a Arraylist eh muito usada como lista de objetos. Carrega-se um objeto, e joga-se na ArrayList .

Tem-se uma classe de modelo, onde será carregado as informaçoes do objeto, depois basta ir setando a ArrayList com o objeto, entendeste?

Exemplificando:

Teríamos uma classe CidadeModel , onde teria variáveis responsáveis por carrregar o prefeito, densidade demografica, população etc.

public class CidadeModel {
    
    private String prefeito;
    private double densidadeDemo;
    private double populacao;

    public String getPrefeito() {
        return prefeito;
    }

    public void setPrefeito(String prefeito) {
        this.prefeito = prefeito;
    }

    public double getDensidadeDemo() {
        return densidadeDemo;
    }

    public void setDensidadeDemo(double densidadeDemo) {
        this.densidadeDemo = densidadeDemo;
    }

    public double getPopulacao() {
        return populacao;
    }

    public void setPopulacao(double populacao) {
        this.populacao = populacao;
    }
   
}

Em seguida, criamos uma ArrayList do tipo CidadeModel em outra classe (talvez em uma controladora, caso esteja usando arquitetura MVC) para esta receber informaçoes referentes a esta classe:

List<CidadeModel> cidadesList = new ArrayList<>();

Em outra classe criamos um objeto desta classe citada acima, por exemplo: CidadeModel cidade = new CidadeModel() . Daí setamos este objeto (usando o setters das variáveis) com informaçoes, por exemplo que o usuário tenha digitado.
Logo após, setamos a ArrayList criada com o objeto, visto que agora ele está com as variáveis preenchidas:

cidade.setPrefeito("Roberto Lemos");
cidade.setDensidadeDemo(256);
cidade.setPopulacao(459,346);

cidadesList.add(cidade) // adicionando à ArrayList o objeto setado anteriormente.

Daí quando você iterar a ArrayList, lá também terá os campos (as variáveis) que seu objeto também tem.

Ou simplesmente mude seu Array para String[] dados… Mas usar o ArrayList facilitará sua vida, visto que todas as informações q serão lançadas tem a ver com um mesmo objeto, aí ele associará tudo a um único objeto. Já na Array ele entenderá cada variável à parte, como se fosse muitos objetos. Espero que tenha ficado mais claro para você. :wink:

Hundea

Porque usou com <>?

smatt

Dentro do <> se coloca o tipo de dado que será colocado na ArrayList e como já preenchi no início da linha (List<CidadeModel> cidadesList) não tem a necessidade de indicar novamente.

staroski

Você não prestou atenção na mensagem de erro, ele diz que não pode converter String para Objetc.
E não pode mesmo, a classe String estende a classe Object e não a classe Objetc.
O que você tem é um erro de digitação. :wink:

smatt

Ricardo @staroski como sempre genial kkk percebendo os detalhes que não tinha percebido :hugs:

Criado 25 de junho de 2019
Ultima resposta 26 de jun. de 2019
Respostas 5
Participantes 4