Inserir elementos de tipos diferentes em uma lista
13/03/2012 18:39
0
Eu tenho uma classe questionario que tem dois tipos de questoes(objetivas, subjetivas) na classe questionario quero colocar uma lista com as questoes em ordem para ir sendo respondidas, como faço para colocar dois objetos de tipos diferentes em uma lista.
Pensei em usar interface, mas nao sei como fazer interface em grails.
Tags: lista, Objetos


0
Cara, nunca usei, mas até onde sei, GRails trabalha com interface igual ao Java...

Já não sei te responder quanto ao GORM, mas a Doc. tem um tópico inteiro sobre Herança. Creio que lá podes esclarecer mais tuas dúvida.

Mas porque não criar um campo TIPO na Domain questão que dirá se é uma questão objetiva ou subjetiva ???

Abs []
13/03/2012 18:54


0
O grails permite que vc insira elementos de tipos diferentes em uma lista. Por exemplo:

def lista = ["bacon", 12, "outro bacon", 5]
lista += [new Date()]


Se imprimir a lista vai sair algo como:
[bacon, 12, outro bacon, 5, Fri Mar 16 21:55:19 BRT 2012]


Vc pode pegar todos os elementos de sua lista que são de um determinado tipo. Vamos supor que vc tenha as classes QuestaoObjetiva e QuestaoSubjetiva, vc pode pegar so os objetos QuestaoObjetiva para listar no seu questionario,

Na lista do exemplo acima, para pegar somente as Strings vc faria assim:

def listaStrings = lista.collect {
if (it instanceof String) { return it }
}


[]'s
17/03/2012 01:02


0
Victor,

na verdade o "collect" não pegaria somente as Strings não. Ele preencheria a lista de resultado com "null" onde o elemento original não fosse String.
No caso, essa tua solução resultaria em
[bacon, null, outro bacon, null, null]

Acredito que o colega queria algo como
def listaStr = lista1.findAll { (it instanceof String) }

Isso sim traria: [bacon, outro bacon]
Que acho que era o objetivo do colega.



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto