El método getEnclosingClass() de la clase java.lang.Class se utiliza para obtener la clase envolvente de esta clase. El método devuelve la clase envolvente de esta clase, si esta clase es una clase local o una clase anónima declarada en esa clase. De lo contrario, este método devuelve nulo.
Sintaxis:
public Class getEnclosingClass() throws SecurityException
Parámetro: Este método no acepta ningún parámetro.
Valor devuelto: este método devuelve la clase envolvente de esta clase si esta clase es una clase local o una clase anónima declarada en esa clase. De lo contrario, este método devuelve nulo.
Excepción Este método lanza SecurityException si un administrador de seguridad está presente y no se cumplen las condiciones de seguridad.
Los siguientes programas muestran el método getEnclosingClass().
Ejemplo 1:
Java
// Java program to demonstrate getEnclosingClass() method import java.util.*; public class Test { public static void main(String[] args) throws ClassNotFoundException { // returns the Class object for this class Class myClass = Class.forName("Test"); System.out.println("Class represented by myClass: " + myClass.toString()); // Get the enclosing class of myClass // using getEnclosingClass() method System.out.println("EnclosingClass of myClass: " + myClass.getEnclosingClass()); } }
Class represented by myClass: class Test EnclosingClass of myClass: null
Ejemplo 2:
Java
// Java program to demonstrate getEnclosingClass() method import java.util.*; class Main { public Object obj; Main() { class Arr { }; obj = new Arr(); } public static void main(String[] args) throws ClassNotFoundException { Main t = new Main(); // returns the Class object Class myClass = t.obj.getClass(); // Get the enclosing class of myClass // using getEnclosingClass() method System.out.println("EnclosingClass of myClass: " + myClass.getEnclosingClass()); } }
EnclosingClass of myClass: class Main
Referencia: https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#getEnclosingClass–