Classe que representa métodos presentes em uma determinada Classe
Propriedades
Métodos
Exemplos
Exemplo1.tlpp
//Definicoes das annotation, deve estar num fonte #include "tlpp-object.th" @annotation metodo @end @annotation metodoComParametro @end @annotation classeMetodo @end @classeMetodo() Class NovaClasseMetodo Public Data TesteAttr @metodo() Public Method MetodoTeste() @metodoComParametro() Public Method MetodoTesteComParametros(param1, param2) Public Method New(str) endclass Method New(str) class NovaClasseMetodo ::TesteAttr := str return self Method MetodoTeste() class NovaClasseMetodo Conout(::TesteAttr) return "Banana" Method MetodoTesteComParametros(param1, param2) class NovaClasseMetodo Conout("-----------------------------------") Conout("Instancia:") Conout(::TesteAttr) Conout("Parametros") Conout(param1) Conout(param2) Conout("-----------------------------------") return "Banana" Main Function testeMetodo() local ObjMethod local classes local obj1 local obj2 local ret classes := Reflection.getClassesByAnnotation("classeMetodo", "") // vazio para pegar todas as classes do repositorio obj1 := classes[1]:CreateInstance("Instancia 1") obj2 := classes[1]:CreateInstance("Instancia 2") ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodo") ret := ObjMethod[1]:Execute(obj1) conout(ObjMethod[1]:cMethodName) conout(ret) ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodo") ret := ObjMethod[1]:Execute(obj2) conout(ObjMethod[1]:cMethodName) conout(ret) ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodoComParametro") conout(ObjMethod[1]:cMethodName) ret := ObjMethod[1]:Execute(obj1, "parametro 1", "parametro 2") conout(ret) ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodoComParametro") conout(ObjMethod[1]:cMethodName) ret := ObjMethod[1]:Execute(obj2, "parametro 1", "parametro 2") conout(ret) return
Observações:
Disponível a partir da build 17.3.0.7.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas