Java 类 getEnclosingMethod() 方法



描述

Java 类 getEnclosingMethod() 方法返回一个 Method 对象,该对象表示基础类的紧邻封闭方法,如果此 Class 对象表示方法内的局部类或匿名类,则返回 null。

声明

以下是 java.lang.Class.getEnclosingMethod() 方法的声明

public Method getEnclosingMethod()

参数

返回值

如果该类是局部类或匿名类,则此方法返回基础类的紧邻封闭方法;否则返回 null。

异常

获取基础类的封闭方法示例

以下示例显示了 java.lang.Class.getEnclosingMethod() 方法的使用。在此程序中,我们创建了一个 Class ClassDemo。在 ClassDemo 构造函数中,一个新类被创建为 ClassA。在 main 方法中,我们检索了 ClassDemo 的类,然后使用 getEnclosingMethod() 方法接收并打印封闭方法。

package com.tutorialspoint;

public class ClassDemo {

   public Object c;

   public ClassDemo() {
      class ClassA{};
      c = new ClassA();
   }

   public Object ClassAObject() {
      class ClassA{};
      return new ClassA( );
   }

   public static void main(String[] args) {
     
      Class cls;
      cls = (new ClassDemo()).ClassAObject().getClass();

      System.out.print("Method = ");
      System.out.println(cls.getEnclosingMethod());
   }
} 

输出

让我们编译并运行以上程序,这将产生以下结果:

Method = public java.lang.Object com.tutorialspoint.ClassDemo.ClassAObject()

获取 ArrayList 类的封闭方法示例

以下示例显示了 java.lang.Class.getEnclosingMethod() 方法的使用。在此程序中,我们使用了 ArrayList 的类。然后使用 getEnclosingMethod() 检查并打印封闭方法。

package com.tutorialspoint;

import java.util.ArrayList;

public class ClassDemo {
   public static void main(String[] args) {
      Class cls = ArrayList.class;
      
      System.out.println(cls.getEnclosingMethod());
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

null

获取 Thread 类的封闭方法示例

以下示例显示了 java.lang.Class.getEnclosingMethod() 方法的使用。在此程序中,我们使用了 Thread 的类。然后使用 getEnclosingMethod() 检查并打印封闭方法。

package com.tutorialspoint;

public class ClassDemo {
   public static void main(String[] args) {
      Class cls = Thread.class;
      
      System.out.println(cls.getEnclosingMethod());
   }
}

输出

让我们编译并运行以上程序,这将产生以下结果:

null
java_lang_class.htm
广告