2015-04-19 2 views
0

У меня есть около 1000+ файлов Java, все они содержат на нем аннотацию на уровне класса.Можно ли читать и писать аннотацию в файл java?

Я хочу написать утилиту, которая будет считывать значение аннотации из всего java-файла и при необходимости обновлять его.

Я думал об использовании файла для чтения/записи и сопоставления аннотации с некоторым шаблоном Regex.

Будет ли лучший способ сделать это?

+1

вы можете использовать java.lang.Class для получения всех аннотаций. –

+0

Я не верю в регулярное выражение, для этого вам нужен хороший парсер. Простой пример: предположим, что вы проверяете текстовую строку '' Annotation: "'; то вы можете добавить свою аннотацию к проверке, которая проверяет «Аннотацию». – usr2564301

+0

@VolodymyrLevytskyi: Можно ли написать аннотацию в этот java-файл? – Fazy

ответ

0

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

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

Второй случай намного сложнее. Возможно, потребуется собственный парсер Java.

+1

Для второго случая, упомянутого @ alex-nevidomsky, вы можете использовать библиотеку роутеров (см. Https://github.com/forge/roaster). Мы использовали lib для генерации метамодели, и мы удивляемся, как это сработало. – Tomas