Я пытаюсь использовать отражение, чтобы захватить все общедоступные методы, которые явно объявлены в классе (так что не будет работать, так как он также захватывает методы суперкласса). Я могу использоватьПолучить только общедоступные методы класса с использованием отражения Java
Method[] allMethods = c.getDeclaredMethods();
, чтобы захватить методы только этого класса, но я хочу использовать только публичные.
На данный момент я пытаюсь захватить модификаторы и выполнять определенные действия на основе этого, но по какой-либо причине значение модификатора, показанное в отладчике, и значение значения модификатора не совпадают. Например, у меня есть частный метод getNode
, который, в то время как значение «модификаторы» отображается как 2
в отладчике, оно выводит "1"
, когда я делаю System.out.println(c.getModifiers())
. Weird. Есть ли другой способ получить только публичные методы, или я пропущу что-то очевидное? Спасибо за любую помощь!
Class.getMethods() будет возвращать все публичные методы (также наследуется) –