1

チームメイトにString.replace()を使用しないことを認識させ(開発者の多くは正規表現の引数を認識していないため)、代わりにStringUtils.replace()を使用するようにアドバイスしたいと思います。

コードレビューでそれに焦点を当て、Findbugs、CheckStyle、またはその他のツールのカスタムルールを作成することで、そうすることができますが、これをコードに文書化して、コンパイラに私の意図を認識させたいと思います。

Stringが自分のコードのクラスである場合は、非推奨のアノテーションを追加するだけです。ソースがないクラスに非推奨のアノテーションを追加する方法はありますか?

(いいえ、回避策としてJDKを自分でコンパイルしたくありません:)

4

2 に答える 2

2

簡単な答えはいいえです。

グループのスタイル/バグチェッカーツール(FindBugs、PMD、CheckStyleなど)でルールを有効化または追加するなど、実行可能な代替手段があります。


しかし、私はあなたがここで間違ったアプローチを取っていると思います。私があなたの開発者の一人だったとしたら、私が「あまりにも愚か」だったという意味で、正しく使用するにはかなり腹を立てるでしょString.replace()String.replaceAll()

開発者が理解できないという問題が本当にある場合は、開発者をもう少し教育するか、(本当に愚かである場合は...)それらを置き換える必要があります。

そして、本当の問題がコードベースに誤った使用法が蔓延していることである場合、あなたがする必要があるのはコード監査です。たとえばgrep、そのメソッド名のすべての出現のコードベース、およびそれらを検査します。

于 2013-03-08T10:40:42.230 に答える
1

これは IDE によって検証されるコンパイル時ユーティリティであるため、メソッドに非推奨を追加する別の方法はありません。JDK のソースを変更してコンパイルする必要があります。

おそらく、ビルドツールを使用している場合は、特定のメソッドが呼び出された場合にビルドが失敗することがわかるプラグインがあるかどうかを確認してください

于 2013-03-08T10:25:46.130 に答える