Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Pagetitle
Reflection.getClassesByAnnotation
Reflection.getClassesByAnnotation

Retorna um array com o nome de todas as objetos do tipo Class das classes que tem uma determinada annotation.

...

Bloco de código
languagecpp
themeEclipse
titleexemplo1.tlpp
linenumberstrue
//Definicoes das annotation, deve estar num fonte
#include "msobject.ch" 
namespace exemplo
@annotation AnnotationExemplo
    nickname as char
@end


@AnnotationExemplo(nickname = "MeuObject")
class Obj1
    public method new()
EndClass

@AnnotationExemplo(nickname = "10")
class Obj2
    public method new()
EndClass


method new() class Obj2
return self

method new() class Obj1
return self


Main Function Exemplo()
    retVar := Reflection.getClassesByAnnotation("AnnotationExemplo", "exemplo.*") //procura por todas as classes do namespace exemplo
    varinfoconout("retVar", retVarretVar[1]:cClassName)
    conout(retVar[1]:cProgramName)
    conout(retVar[2]:cClassName)
    conout(retVar[2]:cProgramName)
    
Return cJson

Resultado do Exemplo

EXEMPLO.OBJ1

EXEMPLO1.TLPP
EXEMPLO.OBJ2

EXEMPLO1.TLPPretVar -> ARRAY ( 2) [...]
retVar[1] -> C ( 12) [EXEMPLO.OBJ1]
retVar[2] -> C ( 12) [EXEMPLO.OBJ2]

Abrangência

17.3.0.3

Veja também

...