5

これを行う必要がないようにするには:

if (obj instanceof Class) {
    someHandlingMethod((Class) obj);
}
else if (obj instanceof AnotherClass) {
    someHandlingMethod((AnotherClass) obj);
}

で述べられているように、オブジェクトを既知のクラスに自動的にキャストすることは可能obj.getClass().getName()ですか?

それに加えて、それはきちんとしていて信頼できますか? それとも、単に「責任の連鎖」または「ハンドラー」パターンを使用する方がよいのでしょうか?

コンテキスト:

私のプログラムで受信したオブジェクトは、ネットワーク経由で送信された ObjectInputStream から読み取られたオブジェクトです。受信したすべてのオブジェクトは「メッセージ」タイプであり、メッセージのタイプ (AuthenticateRequest、ViewRequest など) のサブクラスがいくつかあります。これらを別々に扱いたいと思います。

4

3 に答える 3