Sia Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 Hallo Java-Profis, ich würde gerne "this" in der Main-Funktion verwenden. Leider geht das ja nicht, weil main() static ist. Das Ziel ist dieses: In der Klasse Server liegen drei Hashtables, die mit add und get bearbeitet werden können. Es werden vom Server einige Threads mit dem Namen RequestHandler erzeugt. Die Requesthandler sollen auf die Hashtables zugreifen können. Dazu benötigen sie aber die Server-Instanz. Diese wollte ich den Handlern mit HIlfe von "this" übergeben, entwerder über den RequestHandler-Konstruktor oder mit irgeneiner Funktion. Das ist unwichtig. Aber wie mache ich das aus der Main-Funktion heraus? Oder kann ich vielleicht innerhalb der Threads erfahren, wer sie erzeugt hat und hätte so meine Server-Instanz? Danke für eure schnelle Hilfe, Sia Zitieren
Jaraz Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 Hi, bevor ich lange erkläre, hier ein Beispiel: import java.util.*; public class Server { private Hashtable ht = new Hashtable(); public Server() { RequestHandler rh = new RequestHandler(this); } public static void main(String[] args) { Server server = new Server(); } public Hashtable getHt() { return ht; } public void setHt(Hashtable hashtable) { ht = hashtable; } } Zitieren
Pinhead Geschrieben 1. Juli 2003 Geschrieben 1. Juli 2003 Hi, ich glaube du musst dann in der Main erst ein neues Server objekt erzeugen z.B so Server meinServer = new Server(); danach kannst du dann auf die Hashtables zugreifen indem du die Methoden so aufrufst meinServer.[Methodenname] Das könnte vielleicht die Lösung des Problems sein Zitieren
Sia Geschrieben 1. Juli 2003 Autor Geschrieben 1. Juli 2003 Beispiele sind sowieso immer viel besser:) Jetzt, wo ich es so sehe, wirds mir natürlich klar. Aber darauf muss man erst mal kommen, in der Klasse eine Instanz von sich selbst zu erzeugen. Vielen Dank und bis zum nächsten Thread;) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.