Determinação da classe na collection

7 respostas
J

Ola amigos,

gostaria de saber se existe uma maneira de saber que tipo de objeto está dentro de uma collection (ArrayList por exemplo).
Utilizo ele em um .jsp com um javabean.

Passo pro javaBean um parametro que identificará a classe a ser listada. Por exemplo “listar.jsp?opcao=Noticia”

Utilizo os dados recuperados do banco para montar um table.
Utilizando uma rotina genérica evitaria fazer vários testes condicionais… ficaria bem mais elegante, só não sei se tem como … caso alguém saiba… dê um toque.!

p.s.: O instanceof não serve nesse caso, pois teria que fazer varios testes da mesma forma… e é justamente desses testes que tô querendo fugir.

código:

<jsp:useBean id="bnListagem" class="objetos.Listagem" />

<%
        ArrayList lista = new ArrayList();
        lista = bnListagem.listar(request.getParameter("opcao"));
        ListIterator iteraLista = lista.listIterator();
       
        
        while(iteraLista.hasNext()) {
            (Preciso saber a Classe) objeto = (Preciso saber a classe) iteraLista.next();
            //Utilize os metodos objeto.get...() para resgatar os atributos e
            //montar a Table
        }
%>

aguardo… :lol:

7 Respostas

M

cara, eu não sei como é pq ainda nao estudei, mas o Tiger ja tem uns recursos pra isso…

J

Tiger é um framework ?!

J

é, pelo que estou vendo vou ter que lotar o meu jsp de testes condicionais… fazer o que né … ! vamos lá então

HAJA DEDO… ! :wink:

F

O Tiger não vai resolver o problema do colega. No Tiger, usando generics, você pode declarar o tipo de objeto que a coleção irá conter e eliminar o cast quanto for ler os elementos da List, porém o que ele quer é colocar vários objetos de tipos diferentes dentro de um ArrayList e nisso os genéricos não vão ajudar.

Para tentar te ajudar, quais os tipos de objetos que essa lista irá conter?

F

Tiger é o apelido da versão nova do Java a 5.0. Nessa versão foram adicionadas várias funcionalidades novas ao Java. :razz:

J

“fcmartins”:
O Tiger não vai resolver o problema do colega. No Tiger, usando generics, você pode declarar o tipo de objeto que a coleção irá conter e eliminar o cast quanto for ler os elementos da List, porém o que ele quer é colocar vários objetos de tipos diferentes dentro de um ArrayList e nisso os genéricos não vão ajudar.

Para tentar te ajudar, quais os tipos de objetos que essa lista irá conter?

Não véio, os objetos retornados são de um mesmo tipo, a questão é saber esse tipo, pois como citei, o tipo de objetos é determinado pelo parametro passado ao bean. A classe fará as consultas e retornará a collection com um unico tipo de objeto. Irei iterar a collection para monta uma table.

como funcionaria esse generics? algum código exemplo…
? :lol:

J

Dei uma olhada nos generics já, estou tentando integrar o meu eclipse com essa nova funcionalidade. Rapaz, ela vai me ajudar a diminuir algumas linhas de código, mas não vai solucionar o problema dos testes, vou ter que faze-los mesmo.

Mas foi bom ficar por dentro dessa novidade, não sabia… quando terminar, posto aqui pra verem como ficou. !

vlw! :idea:

Criado 28 de janeiro de 2005
Ultima resposta 29 de jan. de 2005
Respostas 7
Participantes 3