How to create a list with some attributes in java?

1

I'm having trouble creating a list where I can enter different values.

I use the following codes:

public class avaliacaoMensal {
    private String questao;
    private char potencial;
    private int resultado;
}

public avaliacaoMensal todosMensal(){    
    List<avaliacaoMensal> dados = new ArrayList<avaliacaoMensal>();
    dados.add("Aaa", 'a', 1);    
}

How to make it work?

public AvaliacaoMensal todosMensal(){
        List<AvaliacaoMensal> dados = new ArrayList<AvaliacaoMensal>();
        dados.add(new AvaliacaoMensal("Aaa", 'a', 1));
        dados.add(new AvaliacaoMensal("Bbb", 'b', 2));
        dados.add(new AvaliacaoMensal("Ccc", 'c', 3));
        // Continuação do código

        return (AvaliacaoMensal) dados;
    }

Then when I add, it generates the error

    

asked by anonymous 06.06.2017 / 20:59

2 answers

3

That does not make much sense. A ArrayList of avaliacaoMensal can only contain objects of type avaliacaoMensal . You need to create an instance of this class and add the element to the list.

public avaliacaoMensal todosMensal(){
    List<avaliacaoMensal> dados = new ArrayList<avaliacaoMensal>();
    avaliacaoMensal aMensal = new avaliacaoMensal();
    // Fazer algo para setar o valor dos atributos questao, potencial e resultado
    dados.add(aMensal);
}

Note that the current code of the avaliacaoMensal class does not contain methods for accessing its properties (the famous getters and setters ), you need to create them.

It is also good to follow the Java naming pattern for class names (camel case with the first capital letter), the class should be called AvaliacaoMensal .

A very common practice is also the creation of constructors that receive as parameter some values of attributes, to already create an instance of the class with some determined values.

Your class, following these tips, would look like this:

public class AvaliacaoMensal {
    private String questao;
    private char potencial;
    private int resultado;

    public AvaliacaoMensal(String questao, char potencial, int resultado) {
        this.questao = questao;
        this.potencial = potencial;
        this.resultado = resultado;
    }

    public String getQuestao() {
        return questao;
    }

    public void setQuestao(String questao) {
        this.questao = questao;
    }

    public char getPotencial() {
        return potencial;
    }

    public void setPotencial(char potencial) {
        this.potencial = potencial;
    }

    public int getResultado() {
        return resultado;
    }

    public void setResultado(int resultado) {
        this.resultado = resultado;
    }
}

In this way, you could use something like the one you tried at the beginning:

public AvaliacaoMensal todosMensal(){    
    List<AvaliacaoMensal> dados = new ArrayList<AvaliacaoMensal>();
    dados.add(new AvaliacaoMensal("Aaa", 'a', 1));
    // Continuação do código
}

You can see it working on repl.it.

    
06.06.2017 / 21:05
1

You need to do this as follows.

RateMany.java will have this code:

public class AvaliacaoMensal {
private String questao;
private char potencial;
private int resultado;

public String getQuestao() {
    return questao;
}

public void setQuestao(String questao) {
    this.questao = questao;
}

public char getPotencial() {
    return potencial;
}

public void setPotencial(char potencial) {
    this.potencial = potencial;
}

public int getResultado() {
    return resultado;
}

public void setResultado(int resultado) {
    this.resultado = resultado;
}

}

Now you can get a test class and do this to see if it works:

    ArrayList<AvaliacaoMensal> lista = new ArrayList<AvaliacaoMensal>();

    AvaliacaoMensal avaliacao = null;
    for (int i = 0; i < 3; i++) {
        avaliacao = new AvaliacaoMensal();
        avaliacao.setPotencial('T');
        avaliacao.setQuestao("Teste");
        avaliacao.setResultado(2);
        lista.add(avaliacao);
    }
    
06.06.2017 / 21:07