Существует ли какой-либо синтаксис Java для доступа к новым методам, определенным в анонимных внутренних классах, из внешнего класса? Я знаю, что могут быть различные обходные пути, но мне интересно, существует ли специальный синтаксис?
class Outer {
ActionListener listener = new ActionListener() {
@Override
void actionPerformed(ActionEvent e) {
// do something
}
// method is public so can be accessible
public void MyGloriousMethod() {
// viva!
}
};
public void Caller() {
listener.MyGloriousMethod(); // does not work!
}
}
МОЕ СОБСТВЕННОЕ РЕШЕНИЕ
Я только что переместил все методы и члены во внешний класс.
Существует ли какой-либо синтаксис Java для доступа к новым методам, определенным в анонимных внутренних классах, из внешнего класса? Я знаю, что могут быть различные обходные пути, но мне интересно, существует ли специальный синтаксис?
Например
[code]class Outer {
ActionListener listener = new ActionListener() {
@Override void actionPerformed(ActionEvent e) { // do something }
// method is public so can be accessible public void MyGloriousMethod() { // viva! }
};
public void Caller() { listener.MyGloriousMethod(); // does not work! }
} [/code]
[b]МОЕ СОБСТВЕННОЕ РЕШЕНИЕ[/b]
Я только что переместил все методы и члены во внешний класс.
Я использую утилиты Google guava ClassPath для получения классов в указанном пакете, но при отладке идеи они возвращают странный класс с именем end $1. я знаю, что анонимный внутренний класс вернет имя, заканчивающееся номером $+, но класс, который...
Общая структура моего кода состоит в том, чтобы иметь две структуры со своими собственными методами, вложенными в класс, который с ними работает, например:
class Solution {
struct TypeText{
//some code, attributes and methods
};
Предположим, у нас есть класс A :
class A{
int a_;
public:
friend class B;
A(int a):a_(a){}
int getA(){ return a_;}
void setA(int a){a_ = a;}
void print(int x){cout