Objekte aus einem void in anderen voids verwenden

Lanzettlich

Mitglied
Hallo!
Ich bräuchte Hilfe bei einem kleinen Javaprogramm - ich will Objekte aus einem void in einem anderen void weiterverwenden. Es wäre nett wenn jemand ein Lösungsbeispiel postet, danke! 🙂

MFG
Lanzettlich
 
meinst du mit "einem void" eine Methode ohne Rückgabewert?
Wenn die Variable dort drin deklariert ist, dann ist die auch nur in der Methode sichtbar.

Wenn du Code posten kannst, kann man dir eher helfen.
 
Das Objekt in ein anderes stecken und damit einen "call by reference" simulieren.

Code:
Object objValue=new Object();
Object objTransport[] = new Object[] {objValue};

someMethod(objTransport);
otherMethod(objTransport);

public void someMethod(Object x[]) {
  x[0]=new ArrayList();
}

public void otherMethod(Object y[]) {
  System.out.println(x[0] instanceof ArrayList);
}

Dein wirkliches Problem wird sein, dass Du in einer Methode viele neue Objekte erzeugst und die dann woanders weiterverarbeiten musst.

Mach das über eine Hilfsklasse, die als Container für all die Objekte dient. Fülle die in Methode 1, lasse die Containerklasse zurückgeben und übergebe die Hilfsklasse an die nächste Methode.

Nächste Variante wäre, die Hilfsklasse vorher zu erzeugen und die dann als Methodenparameter von Methode zu Methode zu übergeben (es gilt obiges: Du simulierst damit einen Call-By-Reference).

HTH,
Bernd
 
Zuletzt bearbeitet:
primitive Typen kannst du in einer Methode nicht nach außen hin ändern, lediglich mit referenzierten Objekten, die der Methode als Parameter übergeben werden, ist dies möglich
 
Ne, Käse, der Wert des aktuellen Parameters wird dem formalen Parameter bei Aufruf zugewiesen
 
Ansonsten: gibt es in Java natuerlich kein "call by reference", primitive Datentypen und Objekte unterscheiden sich da auch nicht. Siehe auch FAQ.
 
Zuletzt bearbeitet von einem Moderator:
Wie können Primitivtypen eigentlich referenziert werden (Klar... durch diese Referenzsimulation von oben, aber das mein' ich nicht 😉)?
Wikipedia hat gesagt.:
In der Sprache Java wird bei primitiven Datentypen automatisch ein Wertparameter (call by value) verwendet. Bei Objekten wird die Objektreferenz als Wertparameter durch Kopie übergeben. Die aufgerufene Methode kann also den Zustand des referenzierten Objekts verändern, jedoch nicht die ursprüngliche Referenz selbst – sie zeigt also nach der Rückkehr aus dem Methodenaufruf auf dasselbe Objekt wie zuvor. Die Terminologie vieler Java-Publikationen verdeckt diesen Umstand.
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben