我如何调用此Ffun()并访问此类?

时间:2019-06-29 20:32:51

标签: java function class object

如何访问 F 类并调用 Ffun(),顺便说一句,我正在使用jdk ver1.8.0_171


class A    
{
    public static void main(String[] args) {
        B obj1=new B();
        B.C obj2=obj1.new C();
        B.C.D obj3=obj2.new D();
        B.C.D.E obj4=obj3.new E();

        obj4.Efun();

    }
}
class B
{
    public void Bfun()
    {
        System.out.println("In class B");
    }
    class C
    {
        public void Cfun()
        {
            System.out.println("In class C");
        }
        class D
        {
            public void Dfun()
            {
                System.out.println("In class D");
            }
                class E
                {
                    public void Efun()
                    {
                        System.out.println("Ind class E");    
                        class F
                        {
                            public void Ffun()
                            {
                                System.out.println("I need to get called");
                            }
                        }
                    }
                }
            }
        }
    }
}

如果您已经找到了调用Ffun()的方法,那么很多,我只是在写这个bcoz stackoverflow不允许我发布这么多的代码和这么少的细节的问题。

1 个答案:

答案 0 :(得分:4)

如果不更改代码,您将无法做到这一点。

无法将方法中定义的本地类告诉外部世界。

您可以在定义new F().Ffun();类之后编写F,因此Efun()将自动调用Ffun()

class E {
    public void Efun() {
        System.out.println("In class E");

        class F {
            public void Ffun() {
                System.out.println("I need to get called");
            }
        } 

        new F().Ffun();
    }
}

该代码毫无意义,顺便说一句。在现实世界中,没有人会这样做。拥有一个内部类可能是一个令人关注的问题,更不用说您的嵌套水平了。