writeUTF (String s) vs writeObject (String s)

In diesem Java-Projekt, an dem ich für die Universität arbeite, habe ich eine Situation, in der ich derzeit erfolgreich Zeichenfolgen über das Netzwerk sende

streamOut = ObjectOutputStream
streamIn = ObjectInputStream

streamOut.writeUTF(msgs.peek());

wobei msgs eine verknüpfte Blockierungswarteschlange ist, mit der sie empfangen wird

String in = streamIn.readUTF();

Ich möchte jedoch einen ObjectInputStream und einen ObjectOutputStream verwenden. Ich habe sie beide im Konstruktor initialisiert und ich spüle den ObjectOutputStream, nachdem ich ihn erstellt habe. Ich habe irgendwo gelesen, dass Sie dies tun müssen.

Ich möchte sowohl Strings als auch einen anderen Objekttyp senden und diesen als gameWorld über das Netzwerk bezeichnen (an dieser Stelle ist mir die Effizienz egal)

streamOut.writeObject("mad cuz i'm bad");

Object in = streamIn.readObject(); 
if(in instanceof String) String inS = (String) in;

Wenn ich Strings verschicke, wird nichts angezeigt. Mein Freund arbeitet an demselben Projekt und übergibt nur einen Objekttyp. Eine der Unterklassen dieses Objekts ist im Wesentlichen ein String. Seine Version funktioniert einwandfrei. Aber er erstellt in jeder Iteration der Ablaufschleife seines Threads einen neuen Stream.

Muss ich etwas mit dem Stream tun, um verschiedene Objekte zu erhalten, die keinen anderen gemeinsamen Vorfahren als Object haben, muss ich bei jeder Iteration der Run-Schleife einen neuen Stream erstellen oder gibt es nur etwas anderes, das ich vollständig bin? fehlt und die von mir angegebenen Informationen reichen nicht aus, um zu sagen, was falsch ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage