Java - Field
Definición
Reflexión : Capacidad de un software para analizarse a sí mismo
-
Pertenece al paquete
java.lang.reflect -
La
clase Field→ Representa uncampoen unaclaseoobjeto -
El
campotiene el mismo propósito que todo el mecanismo dereflexión-
Analizarun componente de software -
Describirsus capacidades dinámicamente entiempo de ejecuciónen lugar de entiempo de compilación
-
-
La
reflexiónpermiten pasarlo por alto e introducir algunas características como la recuperación del valor delcampopor nombre
El tiempo de ejecución se refiere al tiempo que tarda un programa en ejecutarse una vez que ha sido compilado
convertido a código de máquina que puede ser entendido por la computadoraEl tiempo de compilación es el tiempo que tarda en convertir el código fuente de un programa a código de máquina
El tiempo de compilación suele ser más corto que el
tiempo de ejecuciónya que la compilación solo se realiza una vez mientras que la ejecución puede ocurrir varias veces
Campo
-
Variableque forma parte de la definición de unaclase -
Se utiliza para
almacenarinformación relacionada con unobjetode esaclase
Ejemplo Campo
-
Clase llamada
Personaque tienecampospara el nombre y laedadde un objeto persona-
La
clase Personatiene dos campos-
nombreyedad- Públicos lo que significa que se pueden acceder desde cualquier parte del código.
-
-
public class Persona {
public String nombre;
public int edad;
}
Ejemplo Completo
import java.lang.reflect.Field;
public class ClaseField {
public static void main(String[] args) {
// Creación de un usuario
User user = new User();
// Field[] fields = User.class.getFields(); // → Devuelve un objeto de campo que refleja el campo de miembro público especificado de la clase o interfaz representada por este objeto de clase
Field[] fields = User.class.getDeclaredFields(); // → Devuelve una matriz de objetos Field que reflejan todos los campos declarados por la clase o interfaz representada por este objeto Class
Object value = null;
for (int i = 0; i < fields.length; i++) {
try {
value = fields[i].get(user);
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
System.out.println("Valor del campo " + fields[i].getName() + " es " + value);
}
}
}
// Clase Concreta
class User {
public static String name = "John Doe";
public static String getName() {
return name;
}
public static void setName(String name) {
User.name = name;
}
}
- Resultado por pantalla
Valor del campo name es John Doe
-
Los
camposse declaran dentro de laclasefuera de losmétodosoconstructores -
Para acceder a los
camposde unobjetose puede utilizar la notación de punto(.)después del nombre delobjeto
Objeto
- Tenemos un
objetollamadojuande laclase Personapodríamos acceder a suscamposde la siguiente forma
Ejemplo de Objeto
Persona juan = new Persona();
juan.nombre = "Juan";
juan.edad = 35;
-
Hemos creando un
nuevo objetode laclase Personay asignando valores a suscampos nombreyedad- Una vez que tenemos acceso a los
camposde unobjetopodemosleerymodificarsus valores
- Una vez que tenemos acceso a los
Resumen
-
Clase Fieldrepresenta uncampoen unaclaseoobjeto- Se puede utilizar para
accederymodificarlos valoresalmacenadosen esoscampos
- Se puede utilizar para
Deja un comentario