Как мне вызвать это Ffun () и получить доступ к этому классу? - PullRequest
1 голос
/ 29 июня 2019

Как получить доступ к классу 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, который не позволяет мне публиковать этот вопрос с таким большим количеством кода и такими маленькими деталями.

1 Ответ

4 голосов
/ 29 июня 2019

Вы не можете сделать это без изменения кода.

Невозможно рассказать внешнему миру о локальном классе, определенном в методе.

Вы можете написать 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();
    }
}

Код бессмысленный, кстати.Никто никогда не будет делать это в реальном мире.Наличие одного внутреннего класса может быть предметом беспокойства, не говоря уже о вашем уровне вложенности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...