У мене є клас, який використовує XML та відображення для повернення Object
s до іншого класу.
Зазвичай ці об'єкти є підполями зовнішнього об'єкта, але іноді це щось, що я хочу генерувати на льоту. Я спробував щось подібне, але безрезультатно. Я вважаю, що це тому, що Java не дозволить вам отримати доступ до private
методів рефлексії.
Element node = outerNode.item(0);
String methodName = node.getAttribute("method");
String objectName = node.getAttribute("object");
if ("SomeObject".equals(objectName))
object = someObject;
else
object = this;
method = object.getClass().getMethod(methodName, (Class[]) null);
Якщо запропонований метод є private
, він не працює з a NoSuchMethodException
. Я міг би вирішити це, зробивши метод public
, або створивши інший клас, щоб отримати його.
Якщо коротко розповісти, мені було просто цікаво, чи є спосіб отримати доступ до private
методу через рефлексію.