Imprimir List de objetos

19 respostas
M

Eu tenho uma classe produtos com atributos como nome , codigo , quantidade etc.
E tenho varios classes de produtos , por exemplo na Classe Bauru- Lanche eu tenho a opção adicionar ao carrinho ao clicar ele adiciona essa classe (objeto) ao list ,pro exemplo "ped.add(p1)" , e tenho a classe realizar pedido que é quando eu fecho a conta e chama o metodo pra mostrar o List (que esta dentro da classe pedido), só que nao esta retornando nada =X,

Classe pedido :
package pacote.grafico;

import java.sql.Array;
import java.util.ArrayList;
import java.util.List;

public class pedido {
	static String nome="Teste"; 
	public  String listapedidos[];
     
	List<produtos> ped = new ArrayList<produtos>();

	public  void prod (produtos pro){
		ped.add(pro);
	}
	
	public String imprimirprod (){
		
		for (produtos obj : ped){
			nome = obj.toString();
			String produto = nome;
			
		}
		return nome;
		
		//Metodo alternativo =)
		//for (int i = 0; i<ped.size();i++){
		//nome  = ped.get(0).getNome().toString();
		
			 
		//}
			
		
		//for (produtos obj : ped){
			//return obj.nome.toString();
			
		//}	
	
}
}

Setei a variavel "nome" para Teste como um "teste" mesmo na hora de imprimir esta imprimindo "TESTE" ao invés do meu produtos =X.
Aguardo respostas , Abraços e desde ja Obrigado

19 Respostas

JuniorMaia
for (produtos obj : ped){   
            nome = obj.toString();   
            System.out.println("nome: "+nome);   
               
        }

o que lhe retorna?

M

Tinha que retornar o nome e a quantidade , mas nao ta pegando de dentro do for…

Ruttmann
JuniorMaia:
for (produtos obj : ped){   
            nome = obj.toString();   
            System.out.println("nome: "+nome);   
               
        }

o que lhe retorna?

Porque vc não imprime o obj.toString direto, em vez de jogar o retorno de toString pra uma variável?

M
Ruttmann:
JuniorMaia:
for (produtos obj : ped){   
            nome = obj.toString();   
            System.out.println("nome: "+nome);   
               
        }

o que lhe retorna?

Porque vc não imprime o obj.toString direto, em vez de jogar o retorno de toString pra uma variável?

Mas como eu faria isso ? Eu nao estou conseguindo pegar nada que esta dentro do for =X
@EDIT : A vc esta falando pra fazer com o "Joptionpane" ou "systemout"? Não posso eu tenho que armazenar em uma variavel pois vou passar para uma lista depois =X

F

Vc sobreescreveu o método toString da sua classe “produto”?

Aproveitando, siga as boas práticas. Nomes de classes começando com letra maiúscula.

Posta a classe produto aí.

M
Classe Produtos :
package pacote.grafico;

public class produtos {
	private String codigo;
	private String nome;
	private double preco;
	private int quantidade;

	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public double getPreco() {
		return preco;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}
	public int getQuantidade() {
		return quantidade;
	}
	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}
	

}
Sobreescrever o toString? Não como assim? vou dar uma procurada sobre isso ...Obrigado
F
malinosqui:
Classe Produtos :
package pacote.grafico;

public class produtos {
	private String codigo;
	private String nome;
	private double preco;
	private int quantidade;

	public String getCodigo() {
		return codigo;
	}
	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public double getPreco() {
		return preco;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}
	public int getQuantidade() {
		return quantidade;
	}
	public void setQuantidade(int quantidade) {
		this.quantidade = quantidade;
	}
	

}
Sobreescrever o toString? Não como assim? vou dar uma procurada sobre isso ...Obrigado

Perguntei se vc sobreescreveu o toString pq no seu for vc faz "obj.toString()". Na verdade vc tem que usar "obj.getNome()"

M

A sim eu uso

nome = obj.getNome();?
e do um return no final do metodo normalmente?

F

Ai depende… Pelo nome do seu método deduzo que vc quer pegar o nome de todos os produtos correto?

Do jeito que está aí vc soh vai retornar o nome do último produto da lista.

M

Exatamente cara ! se voce pudesse me dar uma luz seria grato =)

F

O que vc quer exatamente fazer?
Se é só imprimir, não precisa retornar nada. Basta ir imprimindo dentro do for;

M

Quero armazenar isso para usar em outro lugar , em uma Lista sei la , pode ser em uma Array ou String ne?Mas como pego o valor do for?

F

Vc já tem a lista de produtos “ped”. Pra que quer outra lista?

M

A lista ped armazena objetos , eu quero uma lista so com o nome =).

F

Cara, acho que vc nao precisa disso… Quando precisar o nome, vc usar a lista ped pegando o nome (obj.getNome()). Simples assim.
Não precisa ficar replicando dados.

M

É que vou usar isso numa Listview em outra classe.

F

E??
Vc ainda pode usar a mesma lista.

M

Não deixa , fala que a lista tem que ser String , sendo que a lista contem objetos e os objetos contem atributos , Strings , Int e double =X
Edit É a listview do android , so que acho que não muda nada .
Agora vou almoçar que a tarde tenho aula (de Java por sinal --’) kk,se voce puder continuar me ajudando agradeço até + cara

F

Vc ta tentando instanciar a JList com a lista? tipo "JList list = new JList(ped);" ???

Não conheço JList, mas não tem método para adicionar os elementos 1 a 1, sem ser direto na instanciação?

Pelo que vi aqui, a JList() recebe ou um Object[] ou um Vector.

Enfim.. Não sei como ela funciona hahaha.

Mas vc pode fazer o seguinte:

String[] lista = new String[pred.size()];
for (int i = 0; i < pred.seze(); i++) {
  lista[i] = pred.getNome();
}

JList jList = new JList(lista);
}

Nem sei se vai rolar tb :lol:

EDIT: Vixi, ListView. Piorou kkkkkk, Nunca vi tb. Mas usando esse código que passei, vc consegue criar sua lista de String tb com algumas mudanças. :lol:

Criado 15 de maio de 2012
Ultima resposta 16 de mai. de 2012
Respostas 19
Participantes 4