Histórico da Página
...
Retorna uma instância da classe solicitada de maneira dinâmica.
Sintaxe
Bloco de código | ||
---|---|---|
| ||
Reflection.getClassesByClassgetClassByClass( cName, [cClassNameFilter]) ) |
Parâmetros
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 |
Retorno
Nome | Tipo | Descrição |
---|---|---|
oRet | Object | Instancia da classe solicita, caso a mesma exista no repositório. Caso contrário retorna NIL |
Exemplos
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
//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 |
Resultado do Exemplo
instancia classe Obj1
instancia classe Obj2
"Instancia invalida"
Abrangência
17.3.0.3
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas