Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Wie gibt man arrays in Java zurueck? (http://www.informatikerboard.de/board/thread.php?threadid=1682)


Geschrieben von Haevelin am 01.11.2013 um 18:21:

  Wie gibt man arrays in Java zurueck?

Ich habe folgendes Programm:
In einer Klasse schreibe ich:


public class VectorRn {
public String rnVector;

}


Dann schreibe ich eine Testklasse:

public class Test {

public static void main(String[] args) {
// TODO Auto-generated method stub
VectorRn[] versuch= new VectorRn[2];
versuch[0].rnVector="0";
versuch[1].rnVector="1";
System.out.println("Gehen jetzt die Felder "+Arrays.toString(versuch));
}
}

Das Ergebnis ist eine NullPointerException; warum?



Geschrieben von eulerscheZahl am 01.11.2013 um 18:57:

 

Du hast zwar das Array initialisiert, aber nicht dessen Inhalt:
code:
1:
2:
versuch[0] = new VectorRn();
versuch[1] = new VectorRn();

Die Ausgabe liefert vermutlich nicht, was du wolltest.



Geschrieben von Haevelin am 04.11.2013 um 10:12:

 

Vielen Dank, das hat schon sehr viel weiter geholfen. Noch eine Frage: Wie kann ich die Komponenten einzeln in der main Methode ausgeben, wenn ich

VectorRn[] versuch= new VectorRn[2];
versuch[0].rnVector="0";
versuch[1].rnVector="1";

in einer eigenen Klasse beschrieben habe, und dann mit return versuch zurückgebe?



Geschrieben von eulerscheZahl am 04.11.2013 um 16:38:

 

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
package infoboard;

public class Main {

	public static VectorRn[] erstelleVector(){
		VectorRn[] meinVector= new VectorRn[2];
		meinVector[0] = new VectorRn();
		meinVector[1] = new VectorRn();
		meinVector[0].rnVector="0";
		meinVector[1].rnVector="1";	
		return meinVector;
	}
	
	public static void main(String[] args) {
		VectorRn[] versuch = erstelleVector();
		for(VectorRn vec : versuch)
			System.out.println(vec.rnVector);
	}

}



Geschrieben von Haevelin am 05.11.2013 um 09:58:

 

Vielen Dank!
Steht so etwas in dem Buch "Java ist auch eine Insel"?



Geschrieben von eulerscheZahl am 05.11.2013 um 14:02:

 

Ja, Kapitel 3.8.15 Mehrere Rückgabewerte.
In C# gibt es daneben noch das Schlüsselwort out bzw. ref, das kennt Java aber nicht.



Geschrieben von Karlito am 05.11.2013 um 14:08:

 

Im Jrinzip ja...

http://openbook.galileocomputing.de/javainsel/javainsel_03_008.html#dodtp04d38ffe-e684-412d-b842-912ebe459181

Scheinbar war aber dein Problem, dass du nicht wusstest, dass die Arraywerte initialisiert werden müssen. Ich denke das gehört eher in die Kategorie Transpherwissen und wird nicht genau so darin stehen. Wenn Du verstanden hast, warum du die Werte Initialisieren musst, sollte sich das Problem aber geklärt haben, oder?

VG,

Karlito


Forensoftware: Burning Board, entwickelt von WoltLab GmbH