NullPointerException (?)

xyt4n

Aktives Mitglied
Hallo, ich bin es wiedermal. :oops:
Dadurch das ich insgesamt 2 Wochen Java allein lernen werde, werde ich öfters mal Probleme und Fragen in diesem Forum stellen.

Nun zur Aufgbabe. Ich will eine Treppenstufe durch Muli-Arrays realisieren. Z.B. so:

1
12
123
1234

Ich habe ein Programm geschrieben, der leider "NullPointerException" als Fehler ausspuckt.
Hab im Internet rausgefunden das diese Fehler kommt, wenn "null anstelle einer Instanz eines Objekts verwendet wird".
Das hilft mir leider gar nicht weiter. Was genau ist der Fehler im Programm?

Java:
import org.riediger.jconsole.JConsole;

public class Matrizen {
	public static void printArray(int[][] array) {

		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) {
				System.out.print(array[i][j] + "\t");
			}
			System.out.println();
		}

	}
	public static int[][] dreiecksArray() {

		int n = JConsole.readInt("Wieviel Stufen willst du haben?:");
		int array[][] = new int[n][];

		for (int i = 0; i < n; i++) {
			int a = 1;
			for (int j = 0; j <= i; j++) {
				array[i][j] = a;
				a++;
			}
		}

		return array;
	}

	public static void main(String[] args) {
		JConsole.start();
		int[][] array = dreiecksArray();
		printArray(array);
	}
}
 

Sonecc

Gesperrter Benutzer
1. Immer den Stacktrace mitposten. Ohne kann man dir nur mit viel aufwand helfen.
2.
Java:
int array[][] = new int[n][];

Hier fehlt eine größenangabe der zweiten ebene, also in etwa sowas:

Java:
int array[][] = new int[n][n];
 
T

Tomate_Salat

Gast
Schau dir mal das Beispiel an:
Java:
int array[][]=new int[2][];
System.out.println(array[0]);
System.out.println(array[1]);

array[0]=new int[2];
System.out.println(array[0]);
System.out.println(array[1]);

array[1]=new int[25];
System.out.println(array[0].length);
System.out.println(array[1].length);
und das Ergebnis:

Code:
null
null

[I@19821f
null

2
25

Dann ist klar, woher die NPE kommt. Also entweder so zuweisen wie Sonecc geschrieben hat oder , wenn die größe Variable sein soll, wie in meinem Beispiel.
 

xyt4n

Aktives Mitglied
1. Immer den Stacktrace mitposten. Ohne kann man dir nur mit viel aufwand helfen.
Meinst du damit die Reihenfolge?

Java:
int array[][] = new int[n][];

Hier fehlt eine größenangabe der zweiten ebene, also in etwa sowas:

Java:
int array[][] = new int[n][n];

Ich möchte aber nicht die Spaltenzahl festlegen.
Hier hat der array auch keine fest definierte Spaltenzahl:
Java:
int array[][]={{1},{1,2},{1,2,3}}

Das ist die Lösung von der Aufgabe, wobei ich nicht abschreiben wollte und selbst drauf kommen wollte. Ich verstehe es jedoch auch nicht. Aber auf jedenfall wird hier auch nicht die Spaltenzahl fest definiert.

Java:
public static int[][] dreiecksArray(int n) {
		int[][] d = new int[n][];
		for (int z = 0; z < d.length; z++) {
			d[z] = new int[z + 1];
			for (int s = 0; s < d[z].length; s++) {
				d[z][s] = s + 1;
			}
		}
		return d;
	}

Schau dir mal das Beispiel an:
Java:
int array[][]=new int[2][];
System.out.println(array[0]);
System.out.println(array[1]);

array[0]=new int[2];
System.out.println(array[0]);
System.out.println(array[1]);

array[1]=new int[25];
System.out.println(array[0].length);
System.out.println(array[1].length);
und das Ergebnis:

Code:
null
null

[I@19821f
null

2
25

Dann ist klar, woher die NPE kommt. Also entweder so zuweisen wie Sonecc geschrieben hat oder , wenn die größe Variable sein soll, wie in meinem Beispiel.
Leider verstehe ich das überhaupt nicht. Ich verstehe die Befehle in Zeile 5 und 9 nicht. Ich würde es verstehen wenn da stehen würde:
Java:
array[0][5]=2;
Also genau gesagt, verstehe ich nicht wie ein Multi Array auf einmal nur eine Klammer haben kann und wieso da new int steht. Außerdem wieso steht die Zahl in der Klammer? Ist int[2] ein eindimensionaler Array? Aber dann würde das new trotzdem kein Sinn machen.

Eure Antwort übersteigt z.Z. mein Wissen. ???:L
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Angelehnt an mein Beispiel:
int[] arr=array[0];
gibt dir ein int-array oder
Code:
null
zurück. Da ich bis Zeile 5 hier kein int-array hinterlegt hatte, gibt es eben
Code:
null
zurück.
mit
array[0]=new int[2];
definiere ich ein int-array mit der länge 2 und weiße es dem 2-dimensionalen Array zu. D.h. wenn du jetzt wieder den Aufruf:
int[] arr=array[0];
machst, bekommst du nichtmehr [c]null[/c] sondern eben das array mit länge 2 zurück.

Vllt hilft das hier noch zum besseren Verständnis:
Galileo Computing :: Java ist auch eine Insel – 3.7 Arrays
 
S

SlaterB

Gast
> Ist int[2] ein eindimensionaler Array? Aber dann würde das new trotzdem kein Sinn machen.

immer erstmal nachdenken, 'new int[2]' ist doch eine ganz normale Erstellung eines Arrays,
warum das 'new' in Zweifel gezogen? alles andere würde an der Stelle doch noch weniger bedeuten

dass man an dieser Stelle etwas mit einen eindimensionalen Array anfangen kann muss natürlich nicht direkt bekannt sein,
mit etwas überlegen dürfte es aber spätestens dann sinnvoll erscheinen,

ein int[][] ist eine Ansammlung von mehreren int[], die mal einzeln setzen kann, deswegen gehen auch verschiedene Längen, also
> int array[][]={{1},{1,2},{1,2,3}}
in der Kurzschreibweise
 

kaetzacoatl

Bekanntes Mitglied
Mal so geagt:
ein Array ist ein Object
Ein Int-Array ist ein Object,
das ints enthält.
Ein Int-Array-Array ist ein
Object, das Int-Arrays
enthält.
Ums dir klar zu machen:
Java:
Object[] array = new Object[2];
array[0] = new int[2];
((int[]) array[0])[0] = 1;
 

xyt4n

Aktives Mitglied
Okay, danke euch allen! Ich wusste nicht das so viel dahinter steckt. Ich hab es grob verstanden und werde mich im internet weiter zum Thema einlesen. :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben