Как получить доступ к анонимному внутреннему классу в методе main? - PullRequest
0 голосов
/ 20 мая 2018

Как получить доступ к анонимному объекту внутреннего класса в методе main.Это дает ошибку времени компиляции, говоря, что «не может сделать статическую ссылку на нестатический метод».Если я делаю анонимный внутренний класс статическим, то я могу получить доступ к нему, к которому хочу получить доступ, не делая его статичным.

Как это сделать.Пожалуйста, помогите.

AnonymousInnerClass2.java

abstract class AnonymousInnerClass21
{
    abstract void m();  
}

public class AnonymousInnerClass2
{
    AnonymousInnerClass21 a=new AnonymousInnerClass21()
    {
        @Override
        void m() {
            System.out.println("Hello");
        }
    };

    public static void main(String[] args)
    {
        a.m();
    }
}

1 Ответ

0 голосов
/ 18 июля 2018

это потому, что для доступа к внутреннему классу (будь то обычный / именованный класс или анонимный класс) вы должны создать объект класса, в котором определен внутренний класс, вы можете попробовать ниже

abstract class AnonymousInnerClass21
{
    abstract void m();  
}

public class AnonymousInnerClass2
{
    AnonymousInnerClass21 a=new AnonymousInnerClass21()
    {
        @Override
        void m() {
            System.out.println("Hello");
        }
    };

    public static void main(String[] args)
    {
        AnonymousInnerClass2 anonymousInnerClass2=  new AnonymousInnerClass2 ();//create outer class object
        anonymousInnerClass2.a.m(); // access inner class object through outer class object

    }
}
...