Автоматическое использование заглавных букв во всех именах методов для переноса с Java на .NET

Я использую IKVM для компиляции большого проекта библиотеки Java в .NET DLL. Однако при этом имена методов остаются в соответствии с соглашением Java о том, что имена методов НЕ пишутся с заглавной буквы, но я хочу, чтобы .NET dll использовалась в проектах .NET, и поэтому хотел бы, чтобы имена методов были написаны с заглавной буквы.

Единственным исключением будут методы, которые являются перегрузками методов JDK, таких как toString() и т. п. — они должны оставаться в нижнем регистре.

Как мне автоматически переименовать все методы (которые не являются перегрузками методов JDK!), преобразовав их имена в заглавные буквы?

Обратите внимание, что я пытался использовать обфускатор, такой как Proguard, но постоянно сталкивался с проблемами настроек и хотел бы найти другое решение. Но если вы знаете какой-либо простой способ сделать это с помощью Proguard, сообщите мне об этом!


person Epaga    schedule 11.08.2010    source источник
comment
К настоящему времени вы, вероятно, знаете об этом, но попытка сделать это не стоит фактора боли. Ваши пользователи со временем узнают, что javaStyleMethodNames в порядке.   -  person Ross Patterson    schedule 21.08.2012


Ответы (1)


Я бы использовал sed, awk и простое регулярное выражение, чтобы просмотреть и заменить методы для вас. Методы имеют довольно предсказуемую сигнатуру.

public|private|protected (какое-то слово, включая void) (может быть, статический) (может быть, синхронизированный) (фактическое имя метода).

Сценарий все поднимет.. тогда такие вещи, как toString, прервут компиляцию, если они правильно имеют аннотацию @Override.. и вы можете вернуться и исправить (вручную или с помощью другого sed специально для toString и т. д.).

person bwawok    schedule 11.08.2010
comment
IKVM компилирует байт-код Java в .NET Intermediate Language (т.е. байт-код), а не из исходного кода Java. Этот подход не сработает. - person Ross Patterson; 21.08.2012