どのメソッドとインターフェースをクラスに常に実装していますか?
常にequals()をオーバーライドしますか?もしそうなら、あなたもhashcode()をしますか?toString()?Comparableインターフェースを実装することを習慣にしていますか?
プログラムを正常に機能させるために、compareTo()を実装し、equals()をオーバーライドする必要があるコードを書いたところです。私は今どこでもこれらを使用する方法を見始めています...
みんなどう思う?
必要な場合を除いて、事前に実装することは通常ありません。
クラスにデータメンバーが含まれていて、どこかに格納する予定の場合は、通常、equals、hashCode、comparableを実装します。
ただし、ほとんどのクラスにはこの問題がないため、これを行う意味はありません。たとえば、クラスがデータではなく他のオブジェクトの機能を中心に展開している場合、なぜわざわざ?インスタンスが1つある場合、または階層的に構成されている場合(たとえば、GUIウィジェットまたはウィンドウ)、なぜわざわざ?
不要なものは実装しないでください。ただし、Javaは通常警告を出さないため、それらが必要かどうかを必ず確認してください。
また、これらの関数を生成するには、IDEまたはApache commonsなどを使用してください。それらを手動でコーディングする必要はめったにありません。
toStringについては、デバッグしてEclipseデバッガーでより適切なプレゼンテーションが必要になるまで(たとえば、オブジェクトIDではなく)、実装することはほとんどありません。私は暗黙的な変換を恐れており、出力を生成するときにtoStringを使用しません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加