Получение информации о частном методе с помощью Javassist - PullRequest
0 голосов
/ 20 декабря 2018

Я использую JavaAssist для чтения информации о классе.Это хороший и очень полезный инструмент.Однако, что я заметил, так это то, что он перечисляет или возвращает закрытые методы класса.

Есть ли способ получить частные методы?

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Вы можете использовать CtClass.getDeclaredMethods () , чтобы получить информацию о частных методах.Или, как указано выше, отражение работает нормально.Попробуйте прочитать это , чтобы узнать больше об особенностях javassist.

0 голосов
/ 07 января 2019

Чтобы получить все методы, которые также содержат закрытые методы класса, вы можете использовать отражение:

import java.lang.reflect.*;

public class ExampleClass {

   public static void main(String[] args) {

      ExampleClass cls = new ExampleClass ();
      Class c = cls.getClass();

      // returns the array of Method objects 
      Method[] m = c.getDeclaredMethods();
      for(int i = 0; i < m.length; i++) {
         System.out.println("method found = " + m[i].toString());
      }
   }

   public ExampleClass () {
      // no argument constructor
   }   

   public void publicMethod(String string1) {
      // NOPE
   }

   private void privateMethod(Integer i) {
      // NOPE
   }
} 
...