mecanismo de reflexión y aplicación java

Una, la reflexión de Java mecanismo

  1. Definición:
    la reflexión: programa de análisis funcional capaz de hacer.
    . Reflexión:. A en el estado de funcionamiento, para cualquier clase, se dan a conocer a todas las propiedades y métodos de esta clase; b Para cualquier objeto, son capaces de llamar a cualquiera de sus métodos y propiedades ;.
            información adquirida esta dinámica y el método de función de reflexión dinámica invocación del objeto se llama el lenguaje java.

  2. Mecanismo de acción de reflexión:
    un análisis de clase función de tiempo de ejecución.
    View B objeto se ejecuta.
    C. para lograr una matriz de destino operación común.
    D. usando método objeto.

  3. Principio
    sistema de tiempo de ejecución para todos los objetos Java siempre mantener tipo de identificador que se conoce como un tiempo de ejecución.
    Esta información se hace un seguimiento de cada objeto pertenece a una clase. información del tipo de máquina virtual para seleccionar el método apropiado para su ejecución en tiempo de ejecución.
    Acceder a esta información a través de clases especiales de Java. Guarde la clase de información se llama clase, el nombre es confuso. método getClass clase Object () devolverá una instancia de tipo de clase.

En segundo lugar, el uso del mecanismo de reflexión de Java

  1. método getClass clase Object () devolverá una instancia de tipo de clase.
    . A las clases de objetos, clase de objeto cargado
            Clase cl = Class.getClass ();
    por ejemplo:
    la creación de clases User.java clases de entidad.
User user = new User();
//返回类对象
Class cl = user.getclass();    
//返回类的名称
String name = cl.getName();

        . B método forName estática para obtener el nombre de clase de objeto correspondiente a la Clase
        Clase cl = Class.forName ( "nombre de la clase de paquetes clase.");

String dassName = "java.util .Random";
Class cl = Cl ass.forName(dassName);
  1. newInstances (): dinámicamente crear una instancia de una clase
    , por ejemplo:
//默认使用类的无参构造方法
User user;
user.getClass().newlnstance();

Complementario:
         c obtener un campo de clase.

Class cl;
Field f  = cl.getField(String name);  //指定的字段
Field f  = cl.getDeclaredField(String name); //指定的字段,需要在修改字段值时必定设置可访问性
f.setAccessible(true);	//设置可访问性

         d. la obtención de métodos de clase

Class cl;
Method m = cl.getMethod(方法名);
Method m = cl.getDeclaredMethod(方法名,Class... pType);
		
//访问方法之前,设置可访问性
m..setAccessible(true);
		
//执行方法
Object obj = m.invoke(实例的对象,Class... agrValue)

Referencia: "La tecnología de núcleo de Java"

Publicado 16 artículos originales · ganado elogios 3 · Vistas 539

Supongo que te gusta

Origin blog.csdn.net/outdata/article/details/99747474
Recomendado
Clasificación