El método getDeclaredField() de la clase java.lang.Class se utiliza para obtener el campo especificado de esta clase. El método devuelve el campo especificado de esta clase en forma de objeto Field.
Sintaxis:
public Field getDeclaredField(String fieldName) throws NoSuchMethodException, SecurityException
Parámetro: este método acepta un parámetro fieldName que es el campo a obtener.
Valor devuelto: este método devuelve el campo especificado de esta clase en forma de objetos de campo.
Excepción Este método arroja:
- NoSuchFieldException si no se encuentra un campo con el nombre especificado.
- NullPointerException si el nombre es nulo
- SecurityException si un administrador de seguridad está presente y no se cumplen las condiciones de seguridad.
Los siguientes programas muestran el método getDeclaredField().
Ejemplo 1:
// Java program to demonstrate
// getDeclaredField() method
import
java.util.*;
public
class
Test {
public
Object obj;
public
static
void
main(String[] args)
throws
ClassNotFoundException, NoSuchFieldException
{
// returns the Class object for this class
Class myClass = Class.forName(
"Test"
);
System.out.println(
"Class represented by myClass: "
+ myClass.toString());
String fieldName =
"obj"
;
// Get the field of myClass
// using getDeclaredField() method
System.out.println(
fieldName +
" Field of myClass: "
+ myClass.getDeclaredField(fieldName));
}
}
Producción:Class represented by myClass: class Test obj Field of myClass: public java.lang.Object Test.obj
Ejemplo 2:
// Java program to demonstrate
// getDeclaredField() method
import
java.util.*;
class
Main {
private
Object obj;
public
static
void
main(String[] args)
throws
ClassNotFoundException, NoSuchFieldException
{
// returns the Class object for this class
Class myClass = Class.forName(
"Main"
);
System.out.println(
"Class represented by myClass: "
+ myClass.toString());
String fieldName =
"obj"
;
try
{
// Get the field of myClass
// using getDeclaredField() method
System.out.println(
fieldName +
" Field of myClass: "
+ myClass.getDeclaredField(fieldName));
}
catch
(Exception e) {
System.out.println(e);
}
}
}
Producción:Class represented by myClass: class Main obj Field of myClass: private java.lang.Object Main.obj
Referencia: https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#getDeclaredField-java.lang.String-