Class getEnclosingMethod() method in Java with Examples (original) (raw)

Last Updated : 27 Jan, 2022

The getEnclosingMethod() method of java.lang.Class class is used to get the enclosing methods of this class. The method returns the enclosing methods of this class if this class is a local class or anonymous class declared in that method. Else this method returns null.
Syntax:

public Method getEnclosingMethod()

Parameter: This method does not accept any parameter.
Return Value: This method returns the enclosing methods of this class if this class is a local class or anonymous class declared in that method. Else this method returns null.
Exception This method throws SecurityException if a security manager is present and the security conditions are not met.
Below programs demonstrate the getEnclosingMethod() method.
Example 1:

Java `

// Java program to demonstrate getEnclosingMethod() 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 methods of myClass
    // using getEnclosingMethod() method
    System.out.println("EnclosingMethod of myClass: "
                       + myClass.getEnclosingMethod());
}

}

`

Output:

Class represented by myClass: class Test EnclosingMethod of myClass: null

Example 2:

Java `

// Java program to demonstrate getEnclosingMethod() method

import java.util.*;

class Main {

public Object obj;

public Object func()
{
    class Arr {
    };
    return new Arr();
}

public static void main(String[] args)
    throws ClassNotFoundException
{
    Main t = new Main();

    // returns the Class object
    Class myClass = t.func().getClass();

    // Get the enclosing constructors of myClass
    // using getEnclosingConstructor() constructor
    System.out.println("getEnclosingMethod of myClass: "
                       + myClass.getEnclosingMethod());
}

}

`

Output:

EnclosingConstructor of myClass: public java.lang.Object Main.func()

Reference: https://docs.oracle.com/javase/9/docs/api/java/lang/Class.html#getEnclosingMethod--