11

Java 5 に移行したばかりのかなり大量のコードがあります。Java 5 バージョンでのリリースを目標として、これらのコンポーネントでジェネリックを使用してきましたが、残りのコードはもちろん生のコードでいっぱいです。種類。生の型のエラーを生成するようにコンパイラを設定し、手動でそれらをクリアし始めましたが、現在の速度では、処理に非常に長い時間がかかります (約2500のエラーがあります)。そして、これは Eclipse の便利な Infer Generic Type クイック フィックスによって実現されます。これは常にエラーを取り除きますが、多くの場合、さらに作業が必要なコードを生成します。

これに対処するより良い方法はありますか?Eclipse より優れた自動化ツールはありますか? リファクタリングを1つずつ行うのではなく、すべての発生に適用する方法はありますか? それとも、警告を無視しますか?

4

5 に答える 5

9

警告を無視することをお勧めします。そうしないと、機能を改善することなく、レガシー コードの更新に多くの時間を費やすことになります。

更新: Lukeからの素晴らしいコメントで、より多くの可視性を得る必要があると考えました: 「ジェネリックは、コンパイル時に実行時のバグをキャッチする方法です。このレガシー コードに、キャストに関連すると思われるバグが含まれていない限り、私はそのままにしておきます (もし壊れていない、直さないでください)」

于 2008-10-20T17:09:37.980 に答える
3

私の知る限り、あなたは可能な限り効率的に取り組んでいます。明らかに完璧ではありませんが、最終的には終了します。

ただし、段階的に行うことをお勧めします。これにより、他の部分よりもメリットが得られるコードの部分がある可能性があります。それらに焦点を当てます。すべてを 1 回のスイープで実行しようとすると、コードに新しいバグが発生するリスクがあります。コンテキスト依存のデータを保持するコレクションがあるような場所が 1 つありますが、ジェネリックは実際には機能しません。

基本的にやっていることはやるが、一気に直そうとせず、他の作業の一環として段階的にやる。

于 2008-10-20T17:14:52.150 に答える
3

同様の課題に直面したため、別の理由で編集されたコードのみを Java 5 スタイルのジェネリックにアップグレードすることにしました。したがって、DoItFast.java に修正すべきバグがある場合は、Java 5 スタイルのジェネリックを使用するように DoItFast.java を更新してください。定期的に編集および変更されているコードの領域は、すぐに更新されます。この動作が数週間または数か月続いた後、コード ベースの状態を再評価できます。

それでも十分な速さで仕事を終わらせられない場合は、昼食後のゆっくりとした時間を使って、無意識のうちにいくつかのクラスをクリーンアップし、プロセスをスピードアップします.

于 2008-10-20T17:43:30.267 に答える
1

IDEA では、すべてのクラスを選択し、コンテキスト メニューをポップアップして、[リファクタリング] | [リファクタリング] を選択できることを理解しています。生成します。ジョブ完了。汎用コード (IMO) を操作するのは確かに楽しい経験です。

于 2008-10-20T18:38:04.523 に答える
1

古いコードをすべて更新する必要はないと思います。おそらく、古いコードのどの部分が頻繁に使用されているかを何らかの方法で特定し、それらを更新してジェネリック型を使用するだけにできたら? それとも、生の型がパブリック関数から返されたときにだけ心配することができますか? これらのケースの多くは、おそらく単なるプライベート/ローカル変数であり、ジェネリック型なしで既に記述されており、おそらく問題なく動作するため、それらを書き直す価値はないでしょう。

于 2008-10-20T17:13:14.023 に答える