Em Java, existem duas maneiras de chamar um método de classe: para métodos estáticos, você pode chamar diretamente o nome da classe e, para métodos não estáticos, você deve usar a chamada de objeto de classe. O mecanismo de reflexão fornece uma maneira relativamente alternativa de chamar, que pode especificar o método a ser chamado conforme necessário, sem precisar ser determinado durante a programação. O método chamado não se limita ao público, mas também pode ser privado. Escreva um programa que use o mecanismo de reflexão para chamar o método estático sin () e o método não estático é igual () da classe de matemática.
A idéia é a seguinte: use math.class.getDecLaredMethod ("sin", dupla.type); Tipo do parâmetro de entrada é o dobro.
O código é o seguinte:
A cópia do código é a seguinte:
importar java.lang.reflect.method;
classe pública Dongtai {
public static void main (string [] args) {
tentar {
System.out.println ("Chame o método estático sin () da classe de matemática");
Método sin = math.class.getDecLaredMethod ("sin", duplo.type);
Duplo sin1 = (duplo) sin.invoke (nulo, novo inteiro (1));
System.out.println ("O valor seno de 1 é:" + sin1);
System.out.println ("Chame o método não estático igual a () da classe String");
Método equals = string.class.getDecLaredMethod ("Equals", Object.Class);
Boolean mrsoft = (booleano) igual.invoke (new string ("Tomorrow Technology"), "Tomorrow Technology");
System.out.println ("é a string Tomorrow Technology:" + MRSOFT);
} catch (Exceção e) {
E.PrintStackTrace ();
}
}
}
O efeito é mostrado na imagem: