Как проанализировать файл Java и автоматически изменить имя переменной / имени метода / имени класса? - PullRequest
0 голосов
/ 12 декабря 2011

Я хотел бы знать, какой, по вашему мнению, лучший способ проанализировать файл Java и автоматически изменить либо имя переменной, либо имя метода, либо имя класса. Я хотел бы сделать это, потому что я хочу отделить некоторый код, просто изменив одну его небольшую часть (одну из трех, упомянутых выше).

Например, у меня может быть класс с глобальной переменной public static final int index = 0, и я хотел бы изменить его на public static final int xxx = 0. Конечно, i следует заменить на xxx в каждом вхождении в файле. То же самое касается имени класса или имени метода.

Мне сказали, что ANTLR может работать на меня, но я никогда не использовал его, и я не хочу тратить время на изучение этого, если обнаружу, что оно не подходит для моих целей.

Спасибо

EDIT: Мне не нужно запутывать код, мне нужно изменить его небольшую часть. Любой из упомянутых выше.

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Если вам нужно всего лишь изменить несколько таких идентификаторов, то рефакторинг (поддерживаемый большинством IDE, включая Eclipse) прост, быстр и надежен.

Если вам нужно многое изменить (например, если вы пытаетесь заменить использование английского языка примерно эквивалентными идентификаторами на иностранном языке - например, counter => compteur), то я бы лично я использую что-то написанное в скриптах, например, sed или Perl. И я был бы очень осторожен, чтобы быть уверенным, что я выбрал точное совпадение (например, при изменении lie на truth, что я также не изменяю belief' to 'betruthf)

Одно предостережение, если вы пользуетесь автоматизированным решением «делайте много за один раз»: будьте уверены, что вы можете протестировать функциональность до и после, чтобы убедиться, что вы ничего не сломали.

1 голос
/ 12 декабря 2011

Используйте кодовый обфускатор, чтобы сделать работу за вас.

Или используйте интегрированную среду разработки, например Eclipse, в которую встроены подобные функции с помощью меню Refactor.

1 голос
/ 12 декабря 2011

Возможно, проще всего использовать существующий кодовый обфускатор, такой как бесплатный Proguard: http://proguard.sourceforge.net/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...