У меня проблемы с использованием закрытого метода внутри закрытого класса внутри открытого класса с использованием API-интерфейса отражений.Вот упрощенный пример кода:
public class Outer {
private class Inner {
private Integer value;
private Inner() {
this(0);
}
private Inner(Integer y) {
value = y;
}
private Integer someMethod(Integer x) {
return x * x;
}
}
}
Опять же, я хочу иметь возможность создать экземпляр объекта класса Outer
, а затем вызвать someMethod
из частного класса Inner
.Я пытался сделать это с помощью отражений, но, похоже, я не могу пройти дальше 1 уровня. Кроме того, внутренний класс может иметь или не иметь конструктор, который, кажется, использует большинство кода.Приведенный выше код является просто фреймворком.
Мой текущий код:
Outer outerObject = new Outer();
Constructor<?> constructor = innerNodeClass.getDeclaredConstructor(Outer.class);
constructor.setAccessible(true);
Object innerObject = constructor.newInstance(outerObject);
innerObject.someMethod(5)
Я искал различные способы, чтобы добраться до внутреннего класса или частного метода, но не могу найти способполучить внешний объект к внутреннему объекту без использования конструктора.Меня интересует только использование закрытого метода во внутреннем классе для элемента во внешнем объекте.