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("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