Вызов этого из вложенного Java ActionListener

Попробуйте проверить свой сервис, в Удалить авторизацию заголовка (это политика, автоматически созданная apigee), вы увидите код ниже:

 <Remove>
        <Headers>
            <Header name="Authorization"/>
            <Header name="Accept"/>
            <Header name="accept-encoding"/>
            <Header name="cache-control"/>
            <Header name="cookie"/>
            <Header name="Postman-Token"/>
        </Headers>
 </Remove>

Итак, у вас есть удалить <Header name="Authorization"/>

5
задан Lahiru Ashan 25 November 2016 в 11:12
поделиться

4 ответа

Вы можете также:

myFrame.setContentPane(createContentPane());

или

myFrame.setContentPane(external.this.createContentPane());

Между прочим, в классах Java первая буква является обычно прописной. Ваш код будет все еще компилировать и работать, если Вы не назовете его как этот, но в соответствии со следующими конвенциями кодирования Вы сможете прочитать код других, и намного более важный другой сможет прочитать Ваш код.

Таким образом, это было бы лучшим стилем:

class External {
    JFrame myFrame;
    ...

        class Internal implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                ...
                myFrame.setContentPane(createContentPane());
               //Or myFrame.setContentPane(External.this.createContentPane());
            }
        }
    ...
 }

Конвенции Кода Java

10
ответ дан 18 December 2019 в 14:52
поделиться

external.this предоставит Вам доступ к экземпляру класса включения, если это будет тем, что Вы хотите...

2
ответ дан 18 December 2019 в 14:52
поделиться

Не уверенный точно, что Вы достигаете, но внутренний класс имеет доступ ко всем членам его класса включения. Получить доступ к "этому" указателю класса включения (например, передать другим методам) использование:

someMethod(External.this);

В Вашем примере Вы на самом деле усложняете его при помощи "этого". Вот две опции, которые будут работать:

myFrame.setContentPane(createContentPane());

или:

myFrame.setContentPane(External.this.createContentPane());

Обратите внимание, что Вы уже получаете доступ к myFrame таким же образом.

1
ответ дан 18 December 2019 в 14:52
поделиться

Сначала вы должны расширить JFrame во внешнем классе следующим образом

class External extends JFrame {
.....
.....
}
0
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: