2014-01-15 3 views
0

У вас возникли проблемы с недокументированными библиотеками, где я пытаюсь заменить некоторые классы в .jar без какого-либо исходного кода. Один класс реализуется из существующего (для него нет java-файла), поэтому у меня есть все методы и сигнатуры методов, но нет способа сделать какие-либо чувства вне параметров, потому что все они называются arg0, arg1 ..., потому что есть много методов, а некоторые содержат до 43 параметров, пытающихся выполнить петлю через параметры, чтобы увидеть, что происходит. Есть ли способ использовать String и динамически перейти к этой переменной?Имена переменных Java из строк

Редактировать: --- больше информации --- Все скомпилировано в файле jar, который я смог переупаковать без одного класса, который я хочу изменить. Итак, класс, который я хочу изменить, расширяет другой класс, который компилируется. Таким образом, при расширении скомпилированного класса моя IDE автоматически сгенерировала все методы и их подписи, когда параметры называются последовательно, и я хотел бы поместить цикл for в каждую функцию, чтобы увидеть, что происходит, а не идти один за другим, один и распечатать его на консоли. Я думаю, что был немного расплывчатым в первоначальном вопросе.

Спасибо

+4

Нет, имена параметров присутствуют только тогда, когда класс/jar скомпилирован в режиме отладки. Вы пытаетесь получить исходное имя параметра или просто перебирать и печатать значения каждой переменной? –

+0

Я смог реализовать его со своим собственным классом, и моя IDE добавила все методы в моем классе. – lrl

+0

Значит, вы используете декомпилированный код? –

ответ

2

Нет, если эти символы были удалены из скомпилированных class файла, вы не можете их восстановить.

0

Вы не можете получить доступ к именам параметров, если класс не был скомпилирован в режиме отладки. Но если вы просто хотите итерации и распечатать значения каждого переданного параметра, mockito может помочь вам там, если вы издеваетесь над методом. Или вы можете просто наступить с графическим отладчиком.

Смежные вопросы