Java Class 类 getEnclosingClass()方法及示例

Class类getEnclosingClass()方法

  • getEnclosingClass()方法在java.lang包中可用。

  • getEnclosingClass()方法用于返回基础类的最近或立即封闭的类。

  • getEnclosingClass()方法是一个非静态方法,只能通过类对象访问,如果尝试使用类名称访问该方法,则会收到错误消息。

  • 返回Class对象时,getEnclosingClass()方法不会引发异常。

语法:

    public Class getEnclosingClass();

参数:

  • 它不接受任何参数。

返回值:

该方法的返回类型为Class,它返回基础类的最近封闭类。

注意:

  • 如果此类没有顶级类别,则返回null

示例

//Java程序演示示例 
//类的Class getEnclosingClass()方法 

import java.lang.reflect.*;

public class GetEnclosingClassOfClass {
    public GetEnclosingClassOfClass() {
        //OuterClass在GetEnclosingClassOfClass类的内部 
        //内部类 
        //GetEnclosingClassOfClass-
        class OuterClass {
            public void outerMethod() {
                //InnerClass位于OuterClass类的内部,这意味着
                //InnerClass是OuterClass的内部类

                class InnerClass {
                    public void innerMethod() {
                        System.out.println(getClass().getEnclosingClass());
                    }
                }

                System.out.println(getClass().getEnclosingClass());
                //创建一个InnerClass的实例
                InnerClass ic = new InnerClass();
                ic.innerMethod();
            }
        }

        //创建一个OuterClass的实例
        OuterClass oc = new OuterClass();
        oc.outerMethod();
    }

    public static void main(String[] args) {
        GetEnclosingClassOfClass enclo_class = new GetEnclosingClassOfClass();
    }
}

输出结果

class GetEnclosingClassOfClass
class GetEnclosingClassOfClass$1OuterClass