Ниже приведен пример моего класса.Как видите, я определил класс InnerClass
и в методе main создал его экземпляр.Но вместо обычного объявления я объявил его анонимный внутренний класс с методом, которого нет в базовом классе.
Теперь я знаю, что если я объявлю helloWorld()
внутри InnerClass, то я смогу получить доступ к этомуметод в экземпляре, созданном через анонимный внутренний класс.
Но я хочу знать, можно ли вызвать этот метод без объявления базового класса в моем коде.Я попытался изучить API отражения, но мне не повезло
import java.lang.reflect.Method;
public class InnerClass {
int i = 10;
public static void main(String[] args) {
InnerClass inner = new InnerClass() {
void helloWorld() {
System.out.println("Hello");
System.out.println(this.getClass().getEnclosingMethod());
}
};
System.out.println(inner.getClass().getEnclosingMethod());
Method[] method = inner.getClass().getDeclaredMethods();
// Call helloworld method here
for (Method me : method) {
System.out.println(me.getName());
}
}
}