Java Class getEnclosingClass() 方法



描述

Java Class getEnclosingClass() 方法返回底层类的紧邻外层类。如果此类是顶级类,则此方法返回 null。

声明

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

public Class<?> getEnclosingClass()

参数

返回值

此方法返回底层类的紧邻外层类。

异常

获取底层类的外层类示例

以下示例演示了 java.lang.Class.getEnclosingClass() 方法的使用。在此程序中,我们创建了三个类。ClassDemo 类包含两个内部类 Outer 和 Inner。Outer 和 Inner 类具有 show() 方法,该方法利用 getEnclosingClass() 获取底层类的外层类。在每个构造函数中,都会调用 show 方法并打印结果。

package com.tutorialspoint;

public class ClassDemo {
   // constructor
   public ClassDemo() {

      // class Outer as inner class for class ClassDemo
      class Outer {

         public void show() {
            // inner class of Class Outer
            class Inner {

               public void show() {
                  System.out.print(getClass().getName() + " inner in...");
                  System.out.println(getClass().getEnclosingClass());    
               }
            }
            System.out.print(getClass().getName() + " inner in...");
            System.out.println(getClass().getEnclosingClass());

            // inner class show() function
            Inner i = new Inner();
            i.show();
         }
      }

      // outer class show() function
      Outer o = new Outer();
      o.show();
   }

   public static void main(String[] args) {
      ClassDemo cls = new ClassDemo();
   }
}

输出

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

com.tutorialspoint.ClassDemo$1Outer inner in...class com.tutorialspoint.ClassDemo
com.tutorialspoint.ClassDemo$1Outer$1Inner inner in...class com.tutorialspoint.ClassDemo$1Outer

获取 ArrayList 类的外层类示例

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

package com.tutorialspoint;

import java.util.ArrayList;

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

输出

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

null

获取 Thread 类的外层类示例

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

package com.tutorialspoint;

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

输出

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

null
java_lang_class.htm
广告