Executar função estática de uma classe generica
27/08/2014 15:26
0
Vou tentar demonstrar aqui uq quero fazer:

//Tenho aqui a classe G que seria nossa Base

class G {
def test(){print 'test'}
}

//Aqui a classe B a qual quero executar a função estatica

class B extends G{
static void say(){ print 'tchau'}
}

//E aqui eu queria executar o metodo say de qualquer classe que estender a G

class E<T extends G>{
def lol(){ T.say()}
}


Com uma instância eu consigo fazer, mas eu preciso que funcione com as funções estáticas tbm
Tags: groovy, generics


0
Oi José Carlos,

primeiro sugiro que você dê uma lida neste link que expõe como o Groovy lida com generics: http://groovy.codehaus.org/Generics (é muito parecido com Java)

Se sua classe extende a outra, você não precisa colocar a referência direta ao método como está fazendo. Simplesmente faça como no exemplo abaixo:


class E{
def lol(){ say()}
}


Deve funcionar. Algo que pode te ajudar bastante é o Groovy Console. Gravei um vídeo a respeito que pode lhe ser útil: https://www.youtube.com/watch?v=4DAWy3ikKy4

Ele é excelente para este tipo de experimento que você está fazendo.


0
Oi Kico,

Então ja dei uma olhada nesse link ai do groovy mais n consegui entender direito.

A questão é que quero executar a função da classe B ou qualquer outra classe que extenda G e que eu passe para a classe E.

Pelo que entendi seu exemplo ele executaria a função herdada pelo extends eu preciso msm executar a função da classe que me é passada.



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