Red de conocimiento de abogados - Derecho de sociedades - ¿Qué es la reflexión de Java?

¿Qué es la reflexión de Java?

La reflexión de Java significa que para cualquier clase de Java, podemos obtener todas las propiedades y métodos de esta clase (incluidos los métodos de propiedad privada) a través de la reflexión. También podemos llamar a un objeto usando cualquier método de reflexión de Java.

Sabemos que Java es un lenguaje de programación orientado a objetos. Cuando programamos, a menudo encapsulamos los atributos de la clase y luego proporcionamos métodos públicos para establecer y obtener los atributos. Por lo general, configuramos los atributos de una clase como privados para proteger los atributos del objeto contra modificaciones y acceso a voluntad. Pero el mecanismo de reflexión es todo lo contrario: a través de la reflexión, podemos obtener estas propiedades y métodos protegidos, modificarlos y acceder a ellos.

En Java, podemos usar getClass() del objeto objeto; el método obtiene el objeto classObject de la Clase; el formato de sintaxis es Class classObject = object.getClass(); obtenido de acuerdo con el método del objeto Clase. Propiedades y métodos;

Para obtener el nombre del objeto, puede usar classObject.getName() para obtener el nombre de la clase, el resultado incluye; el nombre del paquete;

Obtener el paquete del objeto Nombre del objeto, puede usar classObject.getPackage() para obtener el nombre del paquete;

Para obtener todo lo público; propiedades del objeto objeto, puede usar el método classObject.getFields(); la lista devuelta es una lista de objetos de clase de propiedad Field[];

Para obtener todas las propiedades del objeto objeto, puede utilice el método classObject.getDeclaredFields(), que devuelve una lista de todas las propiedades (incluidas las propiedades privadas);

Obtenga un campo específico del objeto Para los atributos, puede utilizar classObject.getField(fieldName) ; puede obtener el objeto de la clase de atributo según el nombre del atributo;

Para obtener el atributo privado del objeto, puede usar classObject.getDeclaredField (fieldName); basado en el nombre del atributo;

Para obtener los métodos públicos del objeto objeto, use classObject.getMethods(); puede obtener la lista de objetos de la clase Method[];

Para obtener un método público específico del objeto objeto, use classObject.getMethod (funName, Class... parameterTypes Según el nombre del método y la lista de tipos de parámetros del método, puede obtener el objeto de la clase del método;

Obtener todos los métodos del objeto (incluidos los métodos privados); utilice classObject. getDeclaredMethods(); puede obtener una lista de todos los objetos del método;

Para obtener un método específico del objeto (incluido). métodos privados), utilice classObject.getDeclaredMethod (funName, Class... parameterTypes según el nombre del método y la lista de tipos de parámetros del método, puede obtener los métodos específicos de la clase (incluidos los métodos privados);

Para obtener todos los constructores públicos en la clase de objeto, puede usar classObject.getConstructors(); Obtener el objeto de la clase constructora Lista de constructores;

Para obtener un método constructor específico en la clase de objeto, puede usar classObject.getConstructor(Class...parameterTypes); de acuerdo con la lista de tipos de parámetros, obtenga el objeto constructor especificado;

Para obtener todos los constructores (incluido el privado) en la clase de objeto, puede usar classObject.getDeclaredConstructors(); para obtener la lista de objetos del Constructor de clase construido;

Para obtener un Constructor de clase de objeto específico (incluido el privado), puede usar classObject.getDeclaredConstruct

o (Clase... tipos de parámetros); Obtenga el objeto constructor especificado de acuerdo con la lista de tipos de parámetros;