2013-03-08 1 views
1

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

я могу сделать это, говоря им, поставив акцент на том, что в обзорах кода, путем написания пользовательских правил для FindBugs, Checkstyle или других инструментов, но я бы предпочел бы документировать это в коде и сделать компилятор осознавая мое намерение.

Если String был классом в моем собственном коде, я бы просто добавил аннотации к устареванию. Есть ли способ добавить аннотации устаревания для классов, в которых у меня нет источников?

(И нет, я не хочу, чтобы компилировать JDK сам в качестве обходного пути :)

+0

String.replace() не принимает регулярные выражения, не так ли? Вы думаете о String.replaceAll()? –

+0

Что еще вы ищете, если Checkstyle отмечает это как ошибку? –

ответ

2

Короткий ответ No.

Есть жизнеспособные альтернативы, такие как включение или добавление правил в/в инструмент проверки/проверки ошибок ваших групп (FindBugs, PMD, CheckStyle и т. д.).


Однако, я думаю, вы здесь ошибаетесь. Если бы я был одним из ваших разработчиков, я был бы оскорблен тем, что я был «слишком stooopid», чтобы правильно использовать String.replace() или String.replaceAll().

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

И если реальная проблема заключается в том, что ваша кодовая база заражена неправильным использованием, то вам нужно выполнить проверку кода; например grep - кодовая база для всех вхождений имени этого метода и проверить их.

+0

+1 для разработчиков, обижающихся –

+0

Несомненно, вы можете чувствовать себя оскорбленным столько, сколько хотите. Однако речь идет не о разработчике одного героя, а о распределенной команде. Не имеет значения, понимает ли автор свой код, в большой распределенной команде, каждый должен понимать код «каждый». Поэтому следует избегать всех двусмысленностей. Я, конечно, предпочитаю образование, но я вижу новых товарищей по команде все время, поэтому у меня должны быть строгие правила в коде (и инструментах). BTW: Мои товарищи по команде, как правило, очень довольны такими мерами, поскольку я помогаю им избежать ошибок. Они не чувствуют себя «ограниченными в своем творчестве» ... – Bananeweizen

+0

Ничего. Суть в том, что ответа все еще нет. –

1

Это компиляция времени утилиты, которая подтверждена IDE, так что нет другого способа добавить Deprecation по методам, Вы должны изменить источники JDK и скомпилировать их.

Возможно, если Вы используете инструменты для сборки проверьте, есть ли какие-либо плагины, которые вы можете сказать, не в состоянии сборки, если конкретный метод был назван

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