import.css=/download/attachments/6062824/tecnologia.css |
Retorna uma instância da classe solicitada de maneira dinâmica.
Reflection.getClassByClass( cName, [cClassNameFilter]) ) |
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cName | caractere | Indica o nome da classe que será instanciada, caso a mesma exista no no repositório. | X | |
cClassNameFilter | caractere | Indica uma expressão regular para os nomes das classes | X |
Nome | Tipo | Descrição |
---|---|---|
oRet | Object | Instancia da classe solicita, caso a mesma exista no repositório. Caso contrário retorna NIL |
//Definicoes das annotation, deve estar num fonte #include "msobject.ch" namespace exemplo.teste class Obj1 public data cTeste as char public method new() EndClass method new() class Obj1 cTeste := "instancia classe Obj1" return self class Obj2 public data cTeste as char public method new() EndClass method new() class Obj2 cTeste := "instancia classe Obj2" return self Main Function Exemplo() local cNome := "Obj" local oClass := Reflection.getClassByName( cNome + "1", "exemplo.teste") conout(oClass:cTeste) oClass := Reflection.getClassByName( cNome + "2", "exemplo.teste") conout(oClass:cTeste) oClass := Reflection.getClassByName( cNome + "Naoexiste", "exemplo.teste") if oClass == NIL conout("Instancia invalida") endif conout(oClass:cTeste) // Gera erro ao acessar "atributo de NIL" Return |
instancia classe Obj1
instancia classe Obj2
"Instancia invalida"
Abrangência
17.3.0.3