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
廣告