私は2つのほぼ同じクラスを持っているとしますが、それは主要な違いを持つオブジェクトを表しています。現時点では、これらの違いは実際には実装されていません。Javaのインスタンスは機能的に同じクラスを区別できますか?
たとえば、あるクラス(MorningShiftWorker
)は、同じメソッドと同じコンストラクタを別のもの(EveningShiftWorker
と呼びます)と呼びます。両方のオブジェクトは、スーパータイプShiftWorker
のリストに格納されます。
論理的には、これらの2つのグループを分けるのが理にかなっていますが、instanceof
を使用してShiftWorker
リストのオブジェクトをチェックするだけです。
私の質問は:instanceof
は、オレンジとリンゴを区別するのに十分なスマートなのでしょうか?これらの2つのクラスは、名前を除いてすべて同じです。 instanceof
で十分に分かりますか?これについて別の方法がありますか? Javaはオブジェクト/クラスが
あなたは単にそれを試してみませんか? – Manu
これらは2つの別々のクラスファイルで定義されており、どちらも別のクラスファイルを継承しないため、別のクラスファイルのインスタンスではありません – user902383
これは重大なモデリングの問題を抱えているようです。ドメインモデルが適切に構築されていれば、 'instanceof'を使う必要はほとんどありません。 – chrylis