Array Elemente werden nicht gefunden!

javanooobie

Mitglied
Hallo,
ich sitze gerade an einem Programm.
Ich habe 2 Arrays erstellt, diese besitzen jeweils eigene Klassen.

Arrays in der Main Klasse und Methode:
Java:
Person[] person = {
                new person("Person1"),
                new person("Person2"),
                new person("Person3"),
        };

&

Java:
Sache[] sache = {
                new Sache("Sache1", 1),
                new Sache("Sache2", 2),
                new Sache("Sache3", 3),
        };

ebenfalls in der main klasse:
Java:
public Sache sachenSuche(int gesuchteSacheNr) {
        Sache gefunden = null;
        
        for (Sache sachee : sache) {
            if(sachee.getSacheNr() == gesuchteSacheNr) {
                gefunden = sachee;
            }       
        }
        return gefunden;
    }

Zunächst kann der Benutzer sich eine Person aussuchen. (Das Klappt auch soweit)
Das Array "Sache" soll nun durchlaufen werden und durch eine benutzereingabe z.B "1" soll dann "Sache1" aufgerufen werden.

Folgende Eingabe in der Klasse "Person" soll gemacht werden:
Java:
nutzersachennr = scanner.nextInt();
                       
            Sache sache = main.sachenSuche(nutzersachennr);


Ich hab nun folgendes Problem, jedes mal wenn ich versuche die Sachenr durch die Klasse Person zu suchen, wird sie einfach nicht gefunden... habe unzähliges probiert aber es klappt einfach nicht....
Auch durch korrekte Benutzereingabe wird die Sache nicht gefunden und ich kriege eine nullpointer exception.
Hat jemand vielleicht eine Idee oder einen Ansatz, woran es möglicherweise liegen könnte?

Wäre sehr lieb wenn mir jemand dabei helfen könnte!
Bin für jede Hilfe dankbar :)
 

httpdigest

Top Contributor
habe unzähliges probiert aber es klappt einfach nicht....
[...] und ich kriege eine nullpointer exception.
Was genau klappt nicht und wo genau kriegst du welche genaue NPE (mit Stacktrace, bitte und bitte auch am besten die Zeile des Codes nochmal hinschreiben, bei der die Exception genau auftritt, weil man wahrscheinlich aus der Zeilennummer in der Exception hier nichts entnehmen kann)?
 

javanooobie

Mitglied
Was genau klappt nicht und wo genau kriegst du welche genaue NPE (mit Stacktrace, bitte)?
Die Methode "sachenSuche" soll den int wert, der vom benutzer eingegeben wurde, finden. Der Wert, der dabei eingegeben werden soll, soll jeweils die SachenNr(1, 2, 3) sein.
Wenn eine falsche Nummer eingegeben wird, so soll auch keine Sache "ausgegeben" werden.
Wenn der Benutzer aber die richtige Zahl eingibt, so findet das Programm sie trotzdem nicht! (Obwohl dann die richtige "Sache" ausgegeben werden soll.)

Folgende NullPointerException taucht auf:
Exception in thread "main" java.lang.NullPointerException
at Hauptklasse.Person.vorgang(Person.java:59)
at shop.Hauptklasse.main(Versandshop.java:82)

das ist einmal die Zeile 59:
Java:
Sache sache = main.sachenSuche(nutzersachennr);
und Zeile 82:
Java:
main.person[0].vorgang(new Scanner(System.in));

Danke für deine Antwort... Ich hoffe es ist halbwegs verständlich :s
 

httpdigest

Top Contributor
Laut dieser Exception ist der Fehler bei
Java:
Sache sache = main.sachenSuche(nutzersachennr);
Das heisst also, dass main (referenziert innerhalb von Person.vorgang) null ist. Warum das so ist, wird aus dem von dir gezeigten Code nicht ersichtlich.

Hinweis: Seit Java 14 werden bei NPE neuerdings wirklich sehr hilfreiche Exceptionnachrichten ausgegeben, die genau sagen, welcher Teilausdruck null war. Wenn du kannst, solltest du also mindestens zu Java 14 upgraden.
 

javanooobie

Mitglied
Laut dieser Exception ist der Fehler bei
Java:
Sache sache = main.sachenSuche(nutzersachennr);
Das heisst also, dass main (referenziert innerhalb von Person.vorgang) null ist. Warum das so ist, wird aus dem von dir gezeigten Code nicht ersichtlich.
Java:
public static void main(String[] args){
       
        Scanner eingabe = new Scanner(System.in);
               
        Person[] person = {
                new Person("Person1"),
                new Person("Person2"),
                new Person("Person3"),
        };
       
        Sache[] sache = {
                new Sache("Sache1", 1),
                new Sache("Sache2", 2),
                new Sache("Sache3", 3),
        };

       
        Hauptklasse hauptklasse = new Hauptklasse(sache, person);
       
        System.out.println("Willkommen!");
        System.out.println();
       
        int benutzereingabe;
       
        do {
        System.out.println("Bitte Person wählen");
        System.out.print("1)" + Hauptklasse.person[0].getName() + " ");
        System.out.print("2)" + Hauptklasse.person[1].getName() + " ");
        System.out.print("3)" + Hauptklasse.person[2].getName() + " ");
        System.out.println();
       
        benutzereingabe = eingabe.nextInt();
       
       
            if (benutzereingabe == 1) {              
                double ergebnis =
                        hauptklasse.person[0].vorgang(new Scanner
                                (System.in));
               
            }
           
            if (benutzereingabe == 2) {
                double ergebnis =
                        hauptklasse.person[1].vorgang(new Scanner
                                (System.in));
               
            }
           
            if (benutzereingabe == 3) {
                double ergebnis =
                        hauptklasse.person[3].vorgang(new Scanner
                                (System.in));
                             
            }

Hilft das in irgendeiner weise weiter? Ich bin total ratlos..

Im "vorgang" wird die "sachenSuche" Methode aufgerufen
 

javanooobie

Mitglied
Nein. :) Da der Fehler in Person passiert, wäre der Code von Person nicht schlecht.
Also: Wo ist denn die Variable `main` deklariert, auf die in der Methode "vorgang" in Person zugegriffen wird und wie (wahrscheinlich gar nicht) wird diese Variable initialisiert?
Java:
package main;

import java.util.Scanner;

public class Person {
    private String name;
    private Hauptklasse hauptklasse;
    
    public String getName() {
        return name;
    }
    

    public Kunde(String name) {
        this.name = name;
    }
    
    public Kunde(Hauptklasse hauptklasse) {
        this.hauptklasse = hauptklasse;
    }
    
    
public double vorgang(Scanner scanner) {
        double ergebnis = 0.0;
        
        int nutzersachennr;
      
        do {           
            //Sachennr einlesen
            System.out.print("Bitte Sachennummer eingeben.");           
            nutzersachennr = eingabe.nextInt();
            
            //Sachennr wird gesucht
            Sache sache = hauptklasse.sachenSuche(nutzersachennr);
            
            //Wenn Sache gefunden
            if(sache != null) {
                System.out.println(sache.getName());           
            
        } while (nutzersachennr != 4);
                    
        return ergebnis;             
    }

}

hilft es jetzt weiter? tut mir leid das ich so nerve
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Elemente in einem Array Java Basics - Anfänger-Themen 5
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
H Array Elemente Java Basics - Anfänger-Themen 17
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
L Array Elemente verschieben Java Basics - Anfänger-Themen 5
J Elemente in Array speichern, löschen, ... Java Basics - Anfänger-Themen 3
arjoopy Kapselung Elemente aus Objekt-Array ausgeben Java Basics - Anfänger-Themen 8
K Anzahl gleicher Elemente in Array Java Basics - Anfänger-Themen 32
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
C Array Elemente Paarweise vertauschen Java Basics - Anfänger-Themen 2
kilopack15 Array auf doppelte Elemente überprüfen Java Basics - Anfänger-Themen 16
R Variablen [GELÖST]Elemente in Array um Schrittweite s verschieben Java Basics - Anfänger-Themen 2
A Eindeutige Elemente aus Array extrahieren Java Basics - Anfänger-Themen 9
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
L Rückwärtsausgabe der Array-Elemente Java Basics - Anfänger-Themen 5
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
T Elemente im Array umdrehen Java Basics - Anfänger-Themen 9
L Elemente zufällig in ein Array verteilen Java Basics - Anfänger-Themen 12
T Wieviel Array-Elemente Java Basics - Anfänger-Themen 19
W Elemente in einem Array nach 'oben' verschieben Java Basics - Anfänger-Themen 9
A Elemente in array umkehren Java Basics - Anfänger-Themen 32
H Alle Array-Elemente auf einmal überprüfen? Java Basics - Anfänger-Themen 10
R return Anweisungen und Array Elemente löschen Java Basics - Anfänger-Themen 6
B Ausgeben einzelner String Array Elemente funktioniert nicht Java Basics - Anfänger-Themen 4
K Elemente eines Array verschieben Java Basics - Anfänger-Themen 18
C Array - Elemente umordnen ? Java Basics - Anfänger-Themen 20
B zwei zufällige elemente aus array lesen und überprüfen Java Basics - Anfänger-Themen 8
T Elemente aus zweidimensionalen Array löschen Java Basics - Anfänger-Themen 6
D Array Elemente auslesen Java Basics - Anfänger-Themen 14
D Elemente im Array verschieben Java Basics - Anfänger-Themen 15
M XML-Elemente in Array speichern Java Basics - Anfänger-Themen 26
T Überprüfen, ob Array Elemente hat Java Basics - Anfänger-Themen 22
G Rekursiv Array Elemente quadrieren Java Basics - Anfänger-Themen 2
D String array im konstruktor --> wie gibt man elemente an? Java Basics - Anfänger-Themen 2
0 Element aus Array löschen andere Elemente verschieben? Java Basics - Anfänger-Themen 7
V Elemente an Array anhängen Java Basics - Anfänger-Themen 5
S Elemente aus Array entfernen Java Basics - Anfänger-Themen 8
M Array Elemente löschen Java Basics - Anfänger-Themen 6
G Elemente in einem String-Array in einen String umwandeln Java Basics - Anfänger-Themen 2
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben