Referenzparameter

Status
Nicht offen für weitere Antworten.

HeinzHarald

Mitglied
Hi!

Ich habe eine Frage: "richtige" Referenzparameter gibt es in Java nicht, oder?

Ich habe folgendes Problem:
Ich habe eine Methode, in der ich ein Array als Referenzparameter übergeben möchte. Das sieht ungefähr so aus:

Code:
public void testMethod(Object[] objects)
{
    // hier soll dann nun erste die länge definiert werden, nicht vor dem Methodenaufruf:
    objects = new Objects[4]  
        // 4 ist natürlich nun ein Beispiel, im echten Programm kann das je nacht Kontekt variieren
}

Das Array kann auch ein Array von einem eigens definierten Typ sein

Code:
public void testMethod(Object[] objects)
{
    // hier soll dann nun erste die länge definiert werden, nicht vor dem Methodenaufruf:
    objects = new MeinTyp[4]  
        // 4 ist natürlich nun ein Beispiel, im echten Programm kann das je nacht Kontekt variieren
}

Der Compiler teilt mir mit, weil das Array, was ich vorher definiert hab noch nicht initializiert ist, hab also
Code:
// aus der aufrufenden Methode:
Objects[] meineObjekte;
testMethode(meineObjekte)

aber folgendes ist ja möglich:
Code:
Objects[] meineObjekte;
meineObjekte = new Objects[4];

Eigentlich ist das verhalten des Compilers ja schlüssig, aber das muss doch irgendwie gehen.


Vielen Dank!
Gruß
Heinz[/code]
 

Wildcard

Top Contributor
So geht's in jedem Fall nicht da du nur eine Variable ändern würdest und nicht das Objekt.
Wenn du sowas unbedingt brauchst musst du das Objekt in ein anderes Objekt wrappen.
 
G

Guest

Gast
Wozu das Array übergeben wenn es erst in der Methode initialisiert wird? Du kannst das initialisierte Array zurückgeben.

Code:
public Object[] testMethod() 
{ 
        return new Objects[4]  
}
 
G

Guest

Gast
Korrektur: Es muss natürlich heißen
Code:
public Objects[] testMethod() 
{ 
        return new Objects[4]  
}
 

HeinzHarald

Mitglied
jetzt hab ich bloß vergessen zu sagen, dass ich schon einen int-Rückgabewert habe und eigentlich gar nicht void ...

Sorry!
 

HeinzHarald

Mitglied
Das Problem ist, dass wenn ich nachdem die Methode ausgeführt wurde und ich dann aufs Array zugreife, es eine NullPointerException gibt, das deutet darauf hin, dass danach meineObjekte wieder/immernoch auf null gesetzt ist. Das erscheint mir auch logisch, da durch Zuweisung von null ja keine Referenz "erstellt" wurde.

Wäre über einen weiteren Lösungsansatz sehr dankbar


Gruß
Heinz
 
B

bygones

Gast
entweder den array als instanzvariable machen lassen oder von der methode zurueckgeben lassen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben