• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

Array Elemente werden nicht gefunden!

J

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 :)
 
H

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)?
 
J

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
 
H

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.
 
J

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
 
J

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
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
J Array Actionlistener Java Basics - Anfänger-Themen 9
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
A Einmaleins 2D Array Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
O System.out array Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2
G Array Werte addieren Java Basics - Anfänger-Themen 4
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
G Methoden Methode die aus einem Array ein Index ausgibt? Java Basics - Anfänger-Themen 2
L Array Rotation Java Basics - Anfänger-Themen 4
D Ausgabe von Array Java Basics - Anfänger-Themen 2
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
D Input/Output fehlerhafter Algorithmus zum Ersetzen von Array-Werten nach logischem Schema Java Basics - Anfänger-Themen 1
J Ist es möglich einen int Array wirklich leer zu initialisieren oder zu füllen? Java Basics - Anfänger-Themen 21
P Datentypen Array und String Java Basics - Anfänger-Themen 2
Zeppi Array Java Basics - Anfänger-Themen 2
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Zeppi Jagged Array Java Basics - Anfänger-Themen 6
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
U Muster in einem Array erkennen Java Basics - Anfänger-Themen 8
L Array mit Wörtern gestalten Java Basics - Anfänger-Themen 2
Gaudimagspam Nummern generieren Array Java Basics - Anfänger-Themen 4
Eule25 Methode mit Array Java Basics - Anfänger-Themen 4
J Methoden Frage: Array-Werte in anderer Methode ändern Java Basics - Anfänger-Themen 4
FelixN Array mit verschiedene Datentypen als Rückgabewert? (Long und Double) Java Basics - Anfänger-Themen 3
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
J Array über Getter erlangen Java Basics - Anfänger-Themen 34

Ähnliche Java Themen

Anzeige

Neue Themen


Oben