Hallo
Also ich hab ne Frage. Habe das Problem zwar gelöst, aber nimmt mich dennoch wunder.
Ich habe ein Objekt welches ich über einen Object-Stream versende. Hier ist das Objekt:
Beim senden wird nun ein neues Objekt erstellt und versendet:
Zum imageListVector kommt jetzt ein neues Element hinzu, und ich rufe die send-Methode nochmals auf um die neue Liste zu versenden.
Nun das Problem:
Beim Empfänger kommt aber immer nur die imageList an, welche ich beim ersten aufrufen der send-Methode hatte. Teste ich die imageList im Konstruktur des Objekt ist sie verändert, also alles korrekt. Ankommen tut aber die "alte". Füge ich dem Objekt zum Beispiel noch einen Timestamp hinzu (System.currentTimeMillis) wird der Timestamp korrekt übertragen, der Vektor imageList ist aber immer noch der alte.
rufe ich die send-Methode jedoch so auf:
dann funktionierts und ich empfange den Vektor mit dem neuen Element.
Kann mir jemand beantworten wieso das so ist? Läuft da was beim Senden oder Empfangen schief oder hat es was damit zu tun dass sozusagen immer der gleiche Vektor versendet wird und somit irgendwie die Übertragung optimiert wird?
mfg
Also ich hab ne Frage. Habe das Problem zwar gelöst, aber nimmt mich dennoch wunder.
Ich habe ein Objekt welches ich über einen Object-Stream versende. Hier ist das Objekt:
Java:
public class ImageListTransferObject implements Serializable {
private static final long serialVersionUID = 1439908645197571680L;
public Vector<String> imageList = null;
public ImageListTransferObject(Vector<String> imageList) {
this.imageList = imageList;
}
}
Beim senden wird nun ein neues Objekt erstellt und versendet:
Java:
send(new ImageListTransferObject(imageListVector));
Zum imageListVector kommt jetzt ein neues Element hinzu, und ich rufe die send-Methode nochmals auf um die neue Liste zu versenden.
Nun das Problem:
Beim Empfänger kommt aber immer nur die imageList an, welche ich beim ersten aufrufen der send-Methode hatte. Teste ich die imageList im Konstruktur des Objekt ist sie verändert, also alles korrekt. Ankommen tut aber die "alte". Füge ich dem Objekt zum Beispiel noch einen Timestamp hinzu (System.currentTimeMillis) wird der Timestamp korrekt übertragen, der Vektor imageList ist aber immer noch der alte.
rufe ich die send-Methode jedoch so auf:
Java:
send(new ImageListTransferObject(new Vector<String>(imageListVector)));
Kann mir jemand beantworten wieso das so ist? Läuft da was beim Senden oder Empfangen schief oder hat es was damit zu tun dass sozusagen immer der gleiche Vektor versendet wird und somit irgendwie die Übertragung optimiert wird?
mfg
Zuletzt bearbeitet: