Bom dia pessoal, eu estou com uma pequena duvida e gostaria da ajuda de vcs. tenho a minha classe Pessoa e no main um arraylist para guardar objetos do tipo Pessoa. Segue o codigo:
public class Pessoa {
private String nome;
private int idade;
public Pessoa(String nome, int idade) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
@Override
public String toString() {
return String.valueOf(this.idade);
}
public static void main(String[] args) {
List<Pessoa> lista = new ArrayList<Pessoa>();
Pessoa t1 = new Pessoa("nome1", 10);
Pessoa t2 = new Pessoa("nome2", 20);
Pessoa t3 = new Pessoa("nome3", 30);
lista.add(t1);
lista.add(t2);
lista.add(t3);
System.out.println(lista);// nao imprimi o valor das idades corretamente.
}
}
A minha duvida eh q eu nao consigo mostrar somente as idades das pessoas redefinindo o metodo toString, consigo com sucesso mostrar os nomes mas nao as idades pelo fato de ser int.
quando vc diz q a dica ta no construtor, seria colocar Integer ao inves de int? Pq mesmo se for desse jeito eu gostaria da ajuda em relaçao a usar int mesmo.
quando vc diz q a dica ta no construtor, seria colocar Integer ao inves de int? Pq mesmo se for desse jeito eu gostaria da ajuda em relaçao a usar int mesmo.
valeuuu!!![/quote]
Quando ele disse o contrutor, e porque você não está passando o valor do parametro para o atributo da classe:
public Pessoa(String nome, int idade) {
this.nome = nome;
//Cade o this.idade = idade ?
}
amigo, sem querer fazer um overhead no topico, é interessante vc colocar mais informações sobre seu objeto no metodo to string, para poder identificar cada instancia por exemplo.
segundo o livro effective java
[quote]When practical, the toString method should return all of the interesting
information contained in the object…[/quote]
no seu caso vc pode imprimir o nome a idade, assim vc sabe a qual a idade pertence.
[quote=renanreismartins]amigo, sem querer fazer um overhead no topico, é interessante vc colocar mais informações sobre seu objeto no metodo to string, para poder identificar cada instancia por exemplo.
segundo o livro effective java
[quote]When practical, the toString method should return all of the interesting
information contained in the object…[/quote]
no seu caso vc pode imprimir o nome a idade, assim vc sabe a qual a idade pertence.
abrassssss[/quote]
Joshua tem toda a razão.
E para facilitar, tem um Builder na apache.commons.lang que facilita o trabalho:
@Override
public String toString() {
return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE, true);
}
Lembrando que ToStringStyle tem muitos estilos, a gosto do cliente.