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.
[quote=“hrober”]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[/quote]
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();
}
}