Methode erst durchlaufen und dann übergeben

XanderFlash

Grünschnabel
hi alle zusammen,

ich habe kleine frage. ich habe eine methode die ein array füllt, aber auch noch einige andere sachen durchführt. das array soll in einer eigenen methode übergeben werden an eine andere klasse. wie kann ich die methode, um das array erstmal zu füllen durchlaufen lassen, wenn ich aber nur die übergebende methode aufrufe.
jetzt kommen nur 0en als ausgabe, was ja nicht verwunderlich ist.

gibt es eine möglichkeit oder muss ich alles so umschreiben, dass ich das array in der hauptmethode zurückgebe ?
 
wenn ich aber nur die übergebende methode aufrufe.
Den Satz verstehe ich nicht. Ich glaube, du willst das Array nebenbei befüllen.
In dem Fall erstellst du in der 2. erwähnten Methode die Array-Instance, erstellt die einer Runnable-Klasse wobei du ihr das Array übergibst (sollte man laut FindBugs aber besser nicht machen) und die Instance der Runnable einer submit von einen ExecutorService geben.

Dann wird das Array im Hintergrund befüllt. Mit get der Future von submit (ich vermute es heißt so wegen Callable, kA. warum es bei Runnables auch verwendet wird), womit du wartest, dass das Array befüllt wurde.
 
Code:
	public static int[][][] spalteninfo(){
		
		int[][][] tmp = new int [zeilenanzahl-2][zeilenanzahl-2][zeilenanzahl-2];
			
	    for(int i = 0; i< zeilenanzahl - 2; i++){
	    	for(int j = 0; j < zeilenanzahl-2; j++){
	    		for(int h = 0; h < zeilenanzahl-2; h++){
	    	
			      tmp[i][j][h] = arrayzahlens[i][j][h];
					
	    		}
	    	}
	    }
		return tmp;

- > soll die "arrayzahlens" für eine andere klasse übergeben.

die arrayzahlen werden in einer methode

Code:
public cat2test ()

diese beiden methoden sind in der gleichen klasse.
nur kann ich das array nicht in "cat2test" schon zurückgeben, da dort noch einige andere sachen gemacht werden und das array nur ein nebenprodukt ist

ich hoffe, das ist verständlicher
 
nur kann ich das array nicht in "cat2test" schon zurückgeben, da dort noch einige andere sachen gemacht werden und das array nur ein nebenprodukt ist

Klingt mir nicht nach einem guten Design der Klasse. Aber egal - du könntest in cat2test den Array in eine variable speichern und dann einen Getter anbieten:
Java:
class Beispiel{
    private int[][][] spalteninfo;

    public void cat2test(){
        //[...] alles was cat2test so macht
        this.spalteninfo = spalteninfo();
    }

    private static int[][][] spalteninfo(){
        //[...]
    }


    public int[][][] getSpaltenInfo(){
        return this.spalteninfo;
    }
}

Aber ich denke das ist halt auch nur eine krumme Notlösung. Zeig doch mal deine Klasse - ich denke das kann man anders eleganter lösen.
 
Zurück