Olã,
Pessoal, usando reflection eu posso invcocar um método da própria classe sem precisar criar uma instância dela ?
algo parecido com:
Method.invoke([b]this[/b],args) ?
Abraços
Olã,
Pessoal, usando reflection eu posso invcocar um método da própria classe sem precisar criar uma instância dela ?
algo parecido com:
Method.invoke([b]this[/b],args) ?
Abraços
Olá hrober, acho eu que não, só se este método que vc for chamar seja static.
Olã,
Pessoal, usando reflection eu posso invcocar um método da própria classe sem precisar criar uma instância dela ?
algo parecido com:Method.invoke([b]this[/b],args) ?Abraços
não.
Você consegue invocar métodos fornecendo apenas o nome, mas de qlqr forma vc precisa de uma instância do obj.
dê uma olhada aki
Obrigado por responderem :-), uma dúvida:
[*] Como eu posso invocar o método statico ?
abraços
Olá, vc tento o class da classe (Classes.class) vc faz um Method getMethod(String name, Class[] parameterTypes) pra pega o method que vc quer, dai é só invoca-lo.
como o pessoal ja respondeu, tu precisa de uma instancia (a nao ser q seja estatico)
da uma olhada no codigo abaixo…
import java.lang.reflect.Method;
public class Reflection {
public Reflection() {
try {
Method m = this.getClass().getMethod("method", null);
m.invoke(this, null);
m = this.getClass().getMethod("methodStatic", null);
m.invoke(null, null);
} catch(Exception ex) {
ex.printStackTrace();
}
}
public void method() {
System.out.println("Hello");
}
public static void methodStatic() {
System.out.println("Hello Static");
}
public static void main(String[] args) {
new Reflection();
}
}
como o pessoal ja respondeu, tu precisa de uma instancia (a nao ser q seja estatico)
da uma olhada no codigo abaixo…
import java.lang.reflect.Method;
public class Reflection {
public Reflection() {
try {
Method m = this.getClass().getMethod("method", null);
m.invoke(this, null);
m = this.getClass().getMethod("methodStatic", null);
m.invoke(null, null);
} catch(Exception ex) {
ex.printStackTrace();
}
}
public void method() {
System.out.println("Hello");
}
public static void methodStatic() {
System.out.println("Hello Static");
}
public static void main(String[] args) {
new Reflection();
}
}