Erro Utilizando Um ArrayList com Generics

4 respostas
rjpepeu

Fala Pessoal,
não estou entendendo porque meu método está retornando a referência do ArrayList, ao invés de retornar o valor que tem dentro do Array.

Este é o método.
public List<Segmento> lista() throws SQLException {
		List<Segmento> segmentos = new ArrayList<Segmento>();
		String sql = "select dsc_segmento_arrecadacao from ecd_segmento_arrecadacao";
		PreparedStatement stmt = con.prepareStatement(sql);
		ResultSet rs = stmt.executeQuery();
		while(rs.next()){
			Segmento seg = new Segmento();
			seg.setSegmento_arrecadacao(rs.getString("dsc_segmento_arrecadacao"));
			segmentos.add(seg);
			}
		rs.close();
		stmt.close();
		
		return segmentos;
				
	}

Agora a minha classe de teste que chamo e retorna a referência dele.

package teste;

import br.org.ecad.padroniza.DAO.SegmentoDAO;

public class Teste {
public static void main(String[] args) throws Exception  {
	
SegmentoDAO dao = new SegmentoDAO();



System.out.println(dao.lista().get(1));

}


}

Agora segue o retorno dele.

br.org.ecad.padroniza.modelo.Segmento@13582d

Será que alguém pode me ajudar???

Abs

4 Respostas

rjpepeu

Valeu pessoal!!!

consegui, o problema é que eu estava esquecendo de chamar o método get que estava na Classe Segmento.
package teste;

import br.org.ecad.padroniza.DAO.SegmentoDAO;

public class Teste {
public static void main(String[] args) throws Exception  {
	
SegmentoDAO dao = new SegmentoDAO();



System.out.println(dao.lista().get(1).getSegmento_arrecadacao());

}


}
resultado.
TRANSMISSÃO DE EVENTOS MUSICAIS

abs

Roger75

Tente assim:

package teste;
import br.org.ecad.padroniza.DAO.SegmentoDAO;

public class Teste {
public static void main(String[] args) throws Exception  {
	
SegmentoDAO dao = new SegmentoDAO();

Segmento s=(Segmento)dao.lista().get(1);


System.out.println(s.getSegmento_arrecadacao());

}


}
J

Ou você pode sobrescrever o método ToString da classe Segmento, para retornar o valor da variável que você quer printar

G

o problema foi esse ai mesmo, o teu metodo tava retornando corretamente : public List lista() throws SQLException {

ele tava retornando uma lista de segmentos. Ai quando vc mandava o get(1) acho que ele tentava usar o toString do objeto ne? O que vc queria era um campo que tinha dentro do objeto ne?

resolvido, entao!

Criado 27 de abril de 2011
Ultima resposta 27 de abr. de 2011
Respostas 4
Participantes 4