Frage zur NullPointerException

El Kabong

Aktives Mitglied
Hallo!

Irgendwie werd ich nicht schlau draus warum ich eine NullPointerException geworfen bekomme.

Java:
public class BuchTest {

    Buch buch;
    public static void druckeBuecher(Buch[] buecher) {
        for (int i=0; i<=buecher.length; i++) {
        buch = buecher[i];
            if (buecher != null) {
                System.out.println(buch.getAutor() + buch.getTitel() + buch.getPreis());
            
        }
        }
    }

    public static void main(String[] args) {

        Buch[] b1 = new Buch[4];
        b1[0].setTitel("Maier");
        b1[1].setAutor("Maier");
        b1[2].setSeitenzahl(200);
        b1[3].setPreis(30.90);

        System.out.println(b1[0].getTitel());


Wo liegt der Fehler?
 
Zuletzt bearbeitet:

Haave

Top Contributor
Du musst in einer Schleife über das Buch-Array gehen und die Elemente darin initialisieren. Bisher hast du nur das Array initialisiert.
Wahrscheinlich Fehler ab Zeile 16, oder?
 

Raum114

Mitglied
Hier ist ein komplettes Beispiel.

Java:
public class Main {

    public static void druckeBuecher(Buch[] buecher) {
        for (Buch buch : buecher) {
            if (buch != null) {
                System.out.println(buch);
            }
        }
    }

    public static void main(String[] args) {

        Buch[] b1 = new Buch[4];
        b1[0] = new Buch("Meier", "Meier", 300, 80.99);
        b1[1] = new Buch("Meier2", "Meier2", 300, 80.99);
        b1[2] = null;
        b1[3] = new Buch("Meier3", "Meier3", 300, 80.99);

        druckeBuecher(b1);
    }

    public static class Buch {

        private String autor;
        private String titel;
        private int seitenzahl;
        private double preis;

        public Buch(String autor, String titel, int seitenzahl, double preis) {
            this.autor = autor;
            this.titel = titel;
            this.seitenzahl = seitenzahl;
            this.preis = preis;
        }

        public String getAutor() {
            return autor;
        }

        public void setAutor(String autor) {
            this.autor = autor;
        }

        public double getPreis() {
            return preis;
        }

        public void setPreis(double preis) {
            this.preis = preis;
        }

        public int getSeitenzahl() {
            return seitenzahl;
        }

        public void setSeitenzahl(int seitenzahl) {
            this.seitenzahl = seitenzahl;
        }

        public String getTitel() {
            return titel;
        }

        public void setTitel(String titel) {
            this.titel = titel;
        }

        @Override
        public String toString() {
            return "[" + titel + "]";
        }
    }
}
 

El Kabong

Aktives Mitglied
@Raum114

Das Beispiel mit dem Konstruktor bekomme ich auch so hin. Nur mich wurmt es das es doch auch ohne Konstruktor funktionieren muss.
 

Raum114

Mitglied
Dann musst du zu C++ wechseln, dort geht es ohne. :)
Wenn man will dass, das Array fertig initialisiert ist, muss man sich in Java schon eine Klasse bauen die das macht z.B. class FeritgInitalisiertesBuchArray { ... }
new FeritgInitalisiertesBuchArray.get(0).setPreis(...) usw..
 
F

Firephoenix

Gast
Hi,
nochmal zur genaueren Erklärung:

mit Buch[] bla = new Buch[4] reservierst du im Array ja nur Speicher für Bücher, es werden aber
keine Buchobjekte erzeugt.
Das wäre in etwa so wie dieser Code:
Java:
Buch a1;
Buch a2;
Buch a3;
a1.setIrgendwas();
a1 ist hier null, daher kann man nichts setzen, wie das Array aufgebaut wird wurde oben ja schon erklärt.

Dann zu der Schleife (Raum hat direkt eine foreach draus gemacht :D)
Java:
for (int i=0; i<=buecher.length; i++) {
        buch = buecher[i];
            if (buecher != null) {
                System.out.println(buch.getAutor() + buch.getTitel() + buch.getPreis());
            
        }
        }
überleg mal was beim letzten durchlauf passiert. i<= length, deine Länge ist 4, das heißt du hast Objekte von 0 -> 3. in der nächsten Zeile greifst du auf das i-te Feld zu und spätestens hier knallt die ArrayIndexOutOfBounds ;)
beim Array durchlaufen mit for immer nach dem Schema:
Java:
for(int i = 0; i < length; i++)
rückwärts auslesen wäre so in etwa:
Java:
for(int i = length-1; i >= 0; i--)

Gruß
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Frage zu NullPointerException Java Basics - Anfänger-Themen 9
J Frage zum Quellcode - Zusammhänge und Ablauf. Java Basics - Anfänger-Themen 2
D Erste Schritte Frage eines absoluten Anfängers Java Basics - Anfänger-Themen 3
Zrebna Frage zu Test-Driven Development (TDD) Java Basics - Anfänger-Themen 3
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
I Frage Thymeleaf -> Prefix / Suffix ändern? Java Basics - Anfänger-Themen 11
D Rekursions Probleme / frage Java Basics - Anfänger-Themen 4
T Frage zu Parse Java Basics - Anfänger-Themen 2
H Frage an die Profis Java Basics - Anfänger-Themen 4
J Eine konzeptionelle Frage zu OOP Java Basics - Anfänger-Themen 3
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Frage zu arithmetischen Operationen Java Basics - Anfänger-Themen 20
F Kurze Frage zu replace() Java Basics - Anfänger-Themen 19
JavaSchmecktLecker Polymorphie Frage zur Methodenüberschreibung Java Basics - Anfänger-Themen 21
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
B Erste Schritte Frage zu Instanzierung und Referenzen Java Basics - Anfänger-Themen 8
DoubleM Runtime.getRuntime().exec Frage Java Basics - Anfänger-Themen 2
J Eine theoretische Frage zur Praxis - JPanel oder Canvas Java Basics - Anfänger-Themen 5
O Frage: Formaler Typbezeichner? Java Basics - Anfänger-Themen 3
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
N Spezielle frage zum Comparator Java Basics - Anfänger-Themen 6
L Frage zum Array Java Basics - Anfänger-Themen 1
A Frage zum UML Design Java Basics - Anfänger-Themen 1
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
izoards Drucken Frage zu FAQ Beitrag Java Basics - Anfänger-Themen 2
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
sserio Split() -> Regex Frage. Java Basics - Anfänger-Themen 7
A OCA Study Guide: 2. Frage aus Kapitel 3 Java Basics - Anfänger-Themen 9
sserio Date Library Frage Java Basics - Anfänger-Themen 9
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
sserio Frage zu HashMaps Java Basics - Anfänger-Themen 20
sserio Frage zu Threading - Multithreading Java Basics - Anfänger-Themen 2
sserio Frage zu Lambda Ausdrücken Java Basics - Anfänger-Themen 7
sserio Frage zu BigInteger Java Basics - Anfänger-Themen 1
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
xxx12 Frage Java Basics - Anfänger-Themen 2
I Generelle Frage zu Mikroservices (Spring Boot?), Docker... Java Basics - Anfänger-Themen 7
R Frage zu Methoden (Rückgabewert u. ohne.) Java Basics - Anfänger-Themen 2
A Frage zur programmierung Java Basics - Anfänger-Themen 12
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
R Input/Output Frage zu Java IO Java Basics - Anfänger-Themen 6
M Frage zu printWriter Java Basics - Anfänger-Themen 5
C Frage zu OLSMultipleLinearRegression Java Basics - Anfänger-Themen 31
KogoroMori21 Frage zum Euklidischen Algorithmus Java Basics - Anfänger-Themen 11
S Verständnis-Frage zu einer HÜ? Java Basics - Anfänger-Themen 1
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
L Frage zur Ticket Maschine Java Basics - Anfänger-Themen 1
J Frage zu OOP-Klassendiagramm Java Basics - Anfänger-Themen 8
OSchriever Frage zu Compiler Java Basics - Anfänger-Themen 8
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
Bademeister007 Hallo Leute ich hab eine Frage zur ArrayList Java Basics - Anfänger-Themen 8
F Frage betreff Programmierbücher zu Lagerverwaltung als Konsolenprogramm Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
I String.split regex Frage Java Basics - Anfänger-Themen 2
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
dieter000 Frage zu einem Beispiel... Java Basics - Anfänger-Themen 5
J Frage zum Loggen Java Basics - Anfänger-Themen 18
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
Zrebna Frage zum "Referenzen-konzept" in Java Java Basics - Anfänger-Themen 8
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
marcooooo Frage zu bestimmten Beispiel Java Basics - Anfänger-Themen 31
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
N Input/Output Eine Frage über system.out.println. Java Basics - Anfänger-Themen 10
B Erste Schritte Learning Coding (!) Frage an erfahrene Programmierer. Java Basics - Anfänger-Themen 23
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
B Frage zum Code verständnis im Resultat Java Basics - Anfänger-Themen 10
C Exception-Frage Java Basics - Anfänger-Themen 3
J Eine Frage zur Schreibweise == ? : Java Basics - Anfänger-Themen 3
S Frage des Designs Java Basics - Anfänger-Themen 1
JavaTalksToMe Extends/Implements Frage Java Basics - Anfänger-Themen 3
pkm Frage zu Servletfunktion Java Basics - Anfänger-Themen 0
B Frage zur Währungsumrechnung Java Basics - Anfänger-Themen 3
S Allgemeine Frage über Generics und Vererbungen Java Basics - Anfänger-Themen 5
Kirby.exe Frage zur Verwendung von Interfaces Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
D Frage zur IDE IntelliJ IDEA Java Basics - Anfänger-Themen 6
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
N Frage zum Newton-Fraktal Java Basics - Anfänger-Themen 1
H Frage zu interfaces Java Basics - Anfänger-Themen 1
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
I Frage zu SkipList Java Basics - Anfänger-Themen 4
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
Kirby.exe Allgemeine Frage Java Basics - Anfänger-Themen 3
W Frage zu anonymen Klassen Java Basics - Anfänger-Themen 4
J Kleine Frage zu OOP Java Basics - Anfänger-Themen 371
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
F Frage zu Iteratoren Java Basics - Anfänger-Themen 2
C Erste Schritte Frage zur ArrayList Java Basics - Anfänger-Themen 15
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
H Frage zur ermittlung eines doppelte Paars aus Sotieralgorithmus Java Basics - Anfänger-Themen 4
H Frage zum Array Java Basics - Anfänger-Themen 17
G Schach -Frage 2- Maussteuerung Java Basics - Anfänger-Themen 7
G Schach in Java - Allgemeine Frage zur Architektur Java Basics - Anfänger-Themen 7
B Fachliche Frage bei Rechnungen Java Basics - Anfänger-Themen 16
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben