Classe que representa atributos presentes em 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("Instancia executada: " + ::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("Nome do Metodo: " + ObjMethod[1]:cMethodName) conout("Retorno do metodo: " + ret) ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodo") ret := ObjMethod[1]:Execute(obj2) conout("Nome do Metodo: " + ObjMethod[1]:cMethodName) conout("Retorno do metodo: " + ret) ObjMethod := Reflection.getMethodsObjectByAnnotation(obj1, "metodoComParametro") conout("Nome do Metodo: " + ObjMethod[1]:cMethodName) ret := ObjMethod[1]:Execute(obj1, "parametro 1", "parametro 2") conout("Retorno do metodo: " + ret) ObjMethod := Reflection.getMethodsObjectByAnnotation(obj2, "metodoComParametro") conout("Nome do Metodo: " + ObjMethod[1]:cMethodName) ret := ObjMethod[1]:Execute(obj2, "parametro 1", "parametro 2") conout("Retorno do metodo: " + ret) return
Retorno do exemplo
Instancia executada: Instancia 1
Nome do Metodo: METODOTESTE
Retorno do metodo: Banana
Instancia executada: Instancia 2
Nome do Metodo: METODOTESTE
Retorno do metodo: Banana
Nome do Metodo: METODOTESTECOMPARAMETROS
-----------------------------------
Instancia:
Instancia 1
Parametros
parametro 1
parametro 2
-----------------------------------
Retorno do metodo: Banana
Nome do Metodo: METODOTESTECOMPARAMETROS
-----------------------------------
Instancia:
Instancia 2
Parametros
parametro 1
parametro 2
-----------------------------------
Retorno do metodo: Banana
Observações:
Disponível a partir da build 17.3.0.7.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas