Как вызвать переменную-член в родительском объекте externalClass из анонимного InnerClass - PullRequest
1 голос
/ 07 июня 2019

у меня есть OuterClass extends ParentClass .
Я пытаюсь переопределить анонимный InnerClass из ParentClass в OuterClass , и я хочу вызвать переменную-член ParentClass внутри переопределенного анонимного InnerClass .
Вот мой код:

class ParentClass {
    int a;
    Runnable act;
    ParentClass() {
        act = new Runnable() {
            void run() {
                //codes
            }
        }
    }
}

class OuterClass extends ParentClass {
    OuterClass() {
        super();
        super.act = new Runnable() {
            void run() {
                // I want to call 'int a' here!!!
            }
        }
    }
}

Спасибо за вашу помощь !!

1 Ответ

0 голосов
/ 07 июня 2019

Это может помочь вам:

class ParentClass {
    protected int a;
    protected Runnable act;
    ParentClass() {
        act = new Runnable() {
            void run() {
                //codes
            }
        }
    }
}

class OuterClass extends ParentClass {
    OuterClass() {
        super();
        super.act = new RunnableClass (a);
    }
}

class RunnableClass implements Runnable {
    private int a;
    public RunnableClass(int a) {
        this.a = a;
    }

    public void run() { //--- the code here
    }

}

Я не уверен, что использование protected - лучший подход в качестве прав доступа для вас, но моя цель здесь - дать вам возможностьсоздайте свой собственный Runnable со всем необходимым.

...