Как получить имя поля / объекта в методах javassist - PullRequest
0 голосов
/ 06 мая 2020

Как получить имя поля / объекта в методах с помощью javassist

Я могу получить поля имени в классе

ClassPool cp = ClassPool.getDefault();
  CtClass cc = cp.get("other.Main");
   for (CtField ctField : cc.getFields()) {
    ctField.getFieldInfo().toString()
}

, но я не знаю, как получить локальные поля имени в методе .

Я хочу получить поля имени / объекта и параметры для объекта Stuff и Car

public class Main {
    int id;
    String field1;

    public static void main(String[] args) {
        int k;
        Stuff stuff = new Stuff(1,"I' am");
        Car car = new Car();
        stuff.run();
    }
}

Я пробовал

                        CtMethod cm = cc.getDeclaredMethod("main");
                        cm.instrument(
                                new ExprEditor() {
                                    public void edit(FieldAccess m)
                                            throws CannotCompileException {
                                        System.out.println(m.getFieldName());

                                    }
                                });

, но это не работает i не вижу getFieldName и ошибок не вижу

...