過去 2 日間、stackoverflow と Web でより一般的な回答を探していましたが、適切な回答が見つかりませんでした。しかし、私は確かにそれをする最初の人ではありません:
Java で p2p オーバーレイを実装しています。目的は、ピア間でメッセージを交換することです。メッセージは、送信者、受信者、およびコンテンツを含む Message クラスによって表されます。コンテンツは、Context インターフェースを拡張するクラスとして表されます (メッセージのタイプごとに、Context を拡張する新しいクラスが作成され、追加のフィールドを含めることができます。これはアプリケーション固有です)。コンテキストの className もメッセージに格納されます。ただし、ネットワーク経由で送信されるメッセージを言語に依存しないようにしたいため、変換したメッセージをネットワーク経由で送信する前に JSON オブジェクトに変換します。これまでのところ、素晴らしいことは何もありません。
メッセージを受信するときに疑問が生じます。メッセージクラスであると想定する JSON オブジェクトを受信します (型チェックが実行されます)。className としてメッセージに格納されているクラスの内容が含まれます。
そのようなクラス名を保存してから、クラスのインスタンスを作成して、メッセージを受信したときにコンテンツを動的に保存するのが賢明ですか (つまり、コンテンツは SpecificContent クラスのインスタンスになりますが、インターフェイス Content として表示されます)。その後、コンテンツはアプリケーション レベルで利用可能になり、特定のメソッドにアクセスするためにキャストできます。
Javaクラスを単純にシリアル化せずに、ネットワーク経由でメッセージを送信するためのより良い/標準的な方法はありますか? (この場合、C++ などで書かれたプログラムとは通信できませんでした) (Rube Goldberg マシンにほかならない CORBA については話していません)
コメント/質問/回答をお待ちしております。
よろしく、
BF