Mathias: Objekte, Verweise

Beitrag lesen

Hallo,

Dh. im meinem Beispiel sollte das funktionieren und der Wert im Vektor am "Zielort" noch vorhanden sein?
Ähm - wenn Du die Klassen serialisierbar machst (und gegebenfalls in Top-Level Klassen extrahierst), dann ja. Dies zu zeigen war die Absicht meines Beispiels (Hinweis durch Re-Zitat: der Beispielcode "sollte lauffähig sein").

Ich kriegs nicht hin, obwohl die Klassen serialisierbar sind. Ich habe folgendes Konstrukt:

public class Channel implements Serializable {
    private int id;
 private String name;
 private String description;
 private UserList userList;

public Channel(int id, String name) {
  this.id = id;
  this.name = name;
  this.userList = new UserList();
 }
}

public class UserList implements Serializable {

public Vector userList;
 public String test = "Hallo";

public UserList() {
  this.userList = new Vector();
 }
}

public class User implements Serializable {
    private int id;
    private String nickName;
    private String password;

public User(int id, String nickName, String password) {
        this.id = id;
        this.nickName = nickName;
        this.password = password;
    }
}

Wenn ich jetzt einen Channel über ein Socket versende, verliere ich aus irgendeinem Grund die User in der UserList. Der String test ist jedoch noch vorhanden. Kann das überhaupt sein, oder muss da an einer anderen Stelle etwas nicht stimmen? Kann es evtl. was mit den Threads zu tun haben, die ich server- und clientseitig benutze...?

Gruss Mathias