2012-05-15 2 views
0

У меня есть много переформатирования, чтобы сделать в старом проекте Java.Переформатирование большого количества классов

У меня есть более чем 300 различных классов, созданных на фабриках, и я хотел бы автоматизировать изменения с помощью плагина для Eclipse или с помощью инструмента.

Мне нужно удалить тот же параметр для 300 классов (как класс Foo выше) и каждый раз менять имя класса мамы.

пример:

public Foo extends **OldClass** { 

    public Foo(A a, **B b**){ 
     //.. 
    } 

} 

в

public Foo extends newClass { 

    public Foo(A a){ 
     //.. 
    } 

} 

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

Вы знаете, как я мог это сделать? Я нахожусь в системе Windows 7.

+0

Извините меня за отступ, я не знаю, почему это не работает. –

+0

Не могли бы вы пояснить, всегда ли та же самая замена, которую вы хотите сделать во всех 300 файлах (например, заменить «OldClass» на «NewClass» 300 раз), или это разные файлы? – Grundlefleck

ответ

1

Вы можете использовать диалоговое окно поиска в Eclipse (Ctrl + H), чтобы сделать это. Рядом с кнопкой «Поиск» есть кнопка «Заменить». Это можно использовать для поиска всех случаев в нескольких файлах (например, для каждого имени файла, соответствующего *.java), и заменять их одним действием.

eclipse search dialog with replace option

После того, как вы настроили критерии поиска (например, «расширяет OldClass») и искать то, что вам будет представлен диалог для ввода значения замены (например, «расширяет NewClass»). После нажатия «ОК» для этого диалогового окна он выполнит поиск и замену.

replace dialog

Это также позволяет регулярные выражения, как в поиске и замене (я предполагаю, что это позволит использовать регулярное выражение группы захватывает, но я не проверял). Должно быть возможным применить тот же принцип к параметру, который вы также хотите удалить.

Обратите внимание, что это становится более сложным, если вы хотите изменить классы, где отображаются как extends OldClass, так и , B b), и они могут происходить независимо.

+0

Да, но мне нужно сделать это для всего, что я хочу изменить. Я хотел бы выполнить поиск-замените. –

+0

Если у меня другое понимание «партии», это должно быть возможно. Я подразумеваю, что вы хотите сделать это для каждого файла за одно действие (что позволяет, он ищет несколько файлов), если вы хотите, чтобы вы запускали его как отдельную задачу, автоматически извиняясь. – Grundlefleck

+0

Я не говорю по-английски, может быть, мой пост не ясен :) В худшем случае я буду использовать CTRL + H каждый раз. Спасибо! –

1

Если текущий код не является слишком сложным, вы можете уйти с СЭД, например,

find . -type f -iname '*.txt' -exec sed -i 's,this,that,g' {} + 
+0

Я под Windows 7. Я отредактирую свой пост .. –

+0

@ Pier-alexandreBouchard В Windows вы можете установить Cygwin, чтобы получить доступ к некоторым опрятным инструментам обработки файлов на базе Linux, включая find и sed. –

+0

@ChristianSemrau Я ищу плагин или небольшой инструмент, потому что я не могу установить какое-либо программное обеспечение на компьютер моей работы –

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