Utilizando-se da classe Reflection como eu posso obter a, a instancia de uma determinda classe.
String valor = new String();
Então no caso o objeto desta declaração seria valor. Como obter isto por reflection.
Vitor Hugo Brito de Oliveira
Utilizando-se da classe Reflection como eu posso obter a, a instancia de uma determinda classe.
String valor = new String();
Então no caso o objeto desta declaração seria valor. Como obter isto por reflection.
Vitor Hugo Brito de Oliveira
Você quer criar um objeto por reflection, é isso?
Class.newInstance cria um objeto se sua classe tiver um construtor sem parâmetros. Se quiser criar um objeto usando um construtor com parâmetros, escolha o construtor adequado e chame-o.
Um exemplo do uso de java.lang.reflect.Constructor.
import java.lang.reflect.*;
class Exemplo {
private int campo1;
private String campo2;
public Exemplo (int param1, String param2) {
System.out.println ("Chamado o construtor da classe Exemplo, com os parâmetros: " + param1 + ", " + param2);
campo1 = param1;
campo2 = param2;
}
public String toString () {
return "[" + campo1 + "," + campo2 + "]";
}
}
class TesteConstrutor {
public static void main(String[] args) throws
ClassNotFoundException, NoSuchMethodException, InstantiationException,
IllegalAccessException, InvocationTargetException {
Class klass = Class.forName ("Exemplo");
Constructor constr = klass.getConstructor (new Class[]{int.class, String.class});
// a linha a seguir deve imprimir
// "Chamado o construtor da classe Exemplo, com os parâmetros: 20, Expecto patronum"
Object obj = constr.newInstance (new Object[] {new Integer (20), "Expecto patronum"});
System.out.println (obj.getClass().getName()); // deve imprimir "Exemplo"
System.out.println (obj.toString()); // deve imprimir "[20,Expecto patronum]"
}
}
Eu quero obter o nome do objeto.
Objetos não têm nome; a classe ao qual pertence o objeto é que tem nome. Por exemplo, eu imprimi o nome do tal objeto que criei por reflection usando objeto.getClass().getName().
Variáveis têm nome, mas seu nome normalmente é “perdido” em tempo de execução, se for uma variável local.
Eu disse em algum post anterior, que uma variável é uma caixinha e um objeto é o que você põe dentro da caixinha.