English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Alle Kategorien

Gibt es eine Möglichkeit in der Programmiersprache Java verlorene Objekte wiederzufinden, also man kennt nicht die Adresse (weiß aber das Objekt wird noch irgendwo im Programm verwendet) - z.B. gäbe es eine Funktion getAllObjects();?

public class Testprogramm {
public static void main ( String[] args )
{
temp1 = new Meinobjekt();
temp2 = new Meinobjekt();
}
}

Gibt es nun im Konstruktor bei temp2 die Möglichkeit irgendwie an alle Instanzen von Meinobjekt zu kommen, die schon initiert wurden?

2007-01-07 04:44:24 · 3 antworten · gefragt von mo 2 in Computer & Internet Programmierung & Design

3 antworten

Beispiel:
Global definiert:
myClass a = new myClass();

Load-Ereignis:
if(!Page.Postback)
{
a = new myClass();
}

Click-Ereignis einer Schaltfläche
a.Textboxwert= Textbox.Text



if (! IsPostback)
ViewState["a"] = new myClass();
else
a = ViewState["a"] as myClass;

Im Click Event:

a.Textboxwert= Textbox.Text;
ViewState["a"] = a;


vielleicht hilft es dir weiter

2007-01-07 05:03:00 · answer #1 · answered by Corry 6 · 0 0

Alwin, in java gibt es keine globalen Variablen. Und Destruktoren auch nicht.

Du könntest eine statische ArrayList machen, an die sich die Instanz bei der Ausführung des Konstruktors selbst hinzufügt.

Wenn du dann eine statische Methode schreibst, die die ArrayList zurückgibt, dann weisst du Bescheid.

2007-01-10 08:22:50 · answer #2 · answered by Franz C 3 · 0 0

Ich würde das so lösen, dass ich im Konstruktor eine Markierung (das kann sich auf ein einziges Bit beschränken) in einer globalen Variablen setzen lasse, und es im Destruktor wieder löschen. Du musst das halt dann "per Hand" kontrollieren, welche Objekte gerade aktiv sind.

Eine getAllObjects()-Funktion hört sich zwar sinnvoll an, aber der Rechner müsste dann die gesamte Objekthierarchie durchrödeln, und das kostet Rechenzeit und Speicher. Und davon braucht die ganze objektorientierte Programmiererei ja weiß Gott schon genug! (Ich halte OOP sowieso für einen konzeptionellen Fehler; aber mich fragt ja keiner.)

2007-01-07 05:06:01 · answer #3 · answered by Lucius T Fowler 7 · 0 0

fedest.com, questions and answers