Hilfe gesucht: String wird auf null gesetzt!

  • Themenstarter der_Schokomuffin
  • Beginndatum
der_Schokomuffin

der_Schokomuffin

Mitglied
Hallo erstmal,
ich bin beim Programmieren mit Java mit Eclipse auf ein Problem gestoßen: in einer Klasse (ohne public static void main(String[] args)) , nennen wir sie einfach Klasse A, wird eine zufällige Zahl mithilfe von java.util.Random bzw. nextInt() von 1 bis 16 generiert. Anhand dieser Zahl wird durch switch eine String-Variable mit den Namen b initalisiert. Diese String-Variable b habe ich am Anfang der Klasse deklariert. Nun hatte ich vor, in einer Methode einen übergebenen String und b mithilfe von equals() zu vergleichen. Jedoch bekomme ich nie das gewünschte Ergebnis, da b nicht mehr den voher initalisierten String, sondern nur noch null enthält.

Wüsste jemand, woran das liegen könnte oder wie man es hinbekommen könnte, dass der Wert im String bleibt?

Danke im Voraus!
 
JCODA

JCODA

Top Contributor
Wenn du den Code auch noch zeigen würdest, könnte man genauer antworten.
Meine Vermutung: Du deklarierst lokal eine "zweite" String-Instanz b, die mit der Instanz-Variable nichts zu tun hat.
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Java:
import java.util.Random;

import javax.swing.JOptionPane;

public class WrongProduct {
    Random gen1 = new Random();
    NewArticlesV02 na3 = new NewArticlesV02(); // nicht beachten!
 
    private int NwProduct;
    private String wProduct; // String, der zurückgesetzt wird
 
    void setWProduct() {                                   
        NwProduct = 1+gen1.nextInt(16);
     
        switch (NwProduct) {
            case 1: wProduct = "Äpfel";
                break;
            case 2: wProduct = "Butter";
                break;
            case 3: wProduct = "Donuts";
                break;
            case 4: wProduct = "Eier";
                break;
            case 5: wProduct = "Fischstäbchen";
                break;
            case 6: wProduct = "Geröllsteiner Mineralwasser";
                break;
            case 7: wProduct = "Harribo Gummibärchen";
                break;
            case 8: wProduct = "Kloßteig";
                break;
            case 9: wProduct = "Müllbeutel";
                break;
            case 10:wProduct = "Nutella";
                break;
            case 11:wProduct = "Pompers Windeln";
                break;
            case 12:wProduct = "Rotmützchen Wein";
                break;
            case 13:wProduct = "Schokolade";
                break;
            case 14:wProduct = "Torte";
                break;
            case 15:wProduct = "Voll & Fit Energydrink";
                break;
        }
    }
    int getNWProduct() {
        return NwProduct;
    }
    void display_wrong_Product() {
        JOptionPane.showMessageDialog(null, "Folgendes Produkt darf nicht verkauft werden:\n\n" + wProduct);
    }
    void is_wrong_Product_selled(int b, String p) {
        if (b == 0) {
            //System.out.println(b);
            //System.out.println(p);
            //System.out.println(wProduct);
            if (p.equals(wProduct)) {
                //System.out.println(b);
                //System.out.println(wProduct);
                JOptionPane.showMessageDialog(null, "Wrong Product selled!");
            }
            else {
                JOptionPane.showMessageDialog(null, "0_0001");
            }
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:
JCODA

JCODA

Top Contributor
Okay, hier kann ich gerade nichts außergewöhnliches sehen, wie wird die Klasse denn verwendet? Wo wird der Konstruktor, setWProduct und getNWProduct aufgerufen -> Code?
Ansonsten:
Bitte benutze Java-Code Tags. Im Editor: Einfügen... -> Code -> Im Overlay Java auswählen.
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Java:
while (loop == true && start == 1) {
            wn.setWProduct();
            wn.display_wrong_Product();
            while (time != 0) {
                nc.new_customer();
                if (customer == 5) {
                    customer = 0;
                    time = time - 1;
                    System.out.println("time - 1");
                    continue;
                }
                else if (time == 0 && customer == 5) {
                    JOptionPane.showMessageDialog(null, "Schicht zuende!");
                    break;
                }
                else {
                    customer++;
                    System.out.println(customer);
                }
            }

Der Konstruktor und setWProduct werden in der Datei mit public static void main aufgerufen, getNWProduct war nur zum Test gedacht, um die zufällig generierte Zahl auszugeben/weiterzuverwenden und kann eigentlich übersehen werden.
Die Klasse dient dazu, für ein Spiel ein zufälliges Produkt zu erstellen, welches nicht verkauft werden darf.

PS: Entschuldigung für den Fail mit den Code!
 
Zuletzt bearbeitet:
JCODA

JCODA

Top Contributor
Also damit ich den Fehler genauer verstehe:
beim Aufruf von wn.display_wrong_Product(); wird im Message-Dialog null angezeigt?
Weil in deinem Ausgangspost, geht es ja um den Vergleich mit equals, der wohl in is_wrong_Product_selled stattfindet?
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Es geht um den Vergleich in is_wrong_Product_selled, denn wenn man nach if (b == 0) wProduct ausgeben lässt, hat wProduct den Wert "null", was der Fehler ist und dadurch auch die zweite if-Abfrage immer nur false bringt.
 
JCODA

JCODA

Top Contributor
Ok, kannst du mal den Code raussuchen in dem is_wrong_Product_selled() aufgerufen wird? Ich vermute du rufst die Methode auf einer anderen Instanz auf, als du wn.setWProduct(); aufgerufen hast.
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Java:
package ccv02;

import javax.swing.JOptionPane;

public class NewRoundV02 {
   
    NewArticlesV02 na2 = new NewArticlesV02();
    WrongProduct wn1 = new WrongProduct();
   
    private int a;
    private String rProduct;
   
    int getA() {
        return a;
    }
    String getRProduct() {
        return rProduct;
    }
    void new_round() {
        na2.setArticle();
        rProduct = na2.getArticle();
        a = JOptionPane.showConfirmDialog(null, "Ware: " + na2.getArticle() + "\n\nWare abscannen?");
        System.out.println(a);
        if (a == 0) {
            JOptionPane.showMessageDialog(null, "Ware abgescannt!");
        }
        else {
            JOptionPane.showMessageDialog(null, "Ware nicht abgescannt!");
        }
        wn1.is_wrong_Product_selled(a, rProduct);
    }
}

Das ist der Code, in den is_wrong_Product_selled aufgerufen wird.
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Zum besseren Verständnis: der Code für das Objekt na2

Java:
package ccv02;

import java.util.*;

public class NewArticlesV02 {
   
    Random generator = new Random();
   
    private int anzahlWaren;
    private int nWaren;
    private String article;
    private int nArticle;

    void setAnzahlWaren() {
        nWaren = 1 + generator.nextInt(16);
        anzahlWaren = nWaren;
        System.out.println(anzahlWaren);
    }
    int getAnzahlWaren() {
        return anzahlWaren;
    }
    void setArticle() {
        nArticle = 1 + generator.nextInt(16);
        switch (nArticle) {
            case 1: article = "Äpfel";
                    break;
            case 2: article = "Butter";
                    break;
            case 3: article = "Donuts";
                    break;
            case 4: article = "Eier";
                    break;
            case 5: article = "Fischstäbchen";
                    break;
            case 6: article = "Geröllsteiner Mineralwasser";
                    break;
            case 7: article = "Harribo Gummibärchen";
                    break;
            case 8: article = "Kloßteig";
                    break;
            case 9: article = "Müllbeutel";
                    break;
            case 10:article = "Nutella";
                    break;
            case 11:article = "Pompers Windeln";
                    break;
            case 12:article = "Rotmützchen Wein";
                    break;
            case 13:article = "Schokolade";
                    break;
            case 14:article = "Torte";
                    break;
            case 15:article = "Voll & Fit Energydrink";
                    break;
        }
        System.out.println(article);
    }
    String getArticle() {
        return article;
    }
    int getNArticle() {
        return nArticle;
    }
}
 
JCODA

JCODA

Top Contributor
Okay, ich nehme an der erste Code-Ausschnitt, in dem eben setWProdcut() aufgerufen wird, ist in einer anderen Klasse. und speziell wichtig: Du rufst dort ebenfalls WrongProduct wn1 = new WrongProduct(); auf?
Also du rufst mehrfach "new WrongProduct();" auf?
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Ja, der erste mit setWProduct() ist in einer anderen Datei und WrongProduct wird zweimal aufgerufen.
Sollte ich WrongProduct nur einmal aufrufen und kann ich von einer anderen Klasse auf ein Objekt einer anderen zugreifen?
 
JCODA

JCODA

Top Contributor
Ja, der erste mit setWProduct() ist in einer anderen Datei und WrongProduct wird zweimal aufgerufen.
Sollte ich WrongProduct nur einmal aufrufen und kann ich von einer anderen Klasse auf ein Objekt einer anderen zugreifen?

Genau, du solltest es nur einmal erstellen, wenn es nur einmal im Programm existieren soll.

Jedes Objekt hat ja seinen eigenen Zustand, deshalb ist beim zweiten der Wert nicht gesetzt.

Du kannst das bereits erstellte Objekt per Konstruktor/Methode übergeben.
 
der_Schokomuffin

der_Schokomuffin

Mitglied
Ok, erstmal Danke. Wenn ich darüber nachdenke, ergibt das echt Sinn. Hast du ein Codebeispiel, wie man das erste Objekt übergibt?
 
JCODA

JCODA

Top Contributor
Etwa so ..
Java:
import javax.swing.JOptionPane;

public class NewRoundV02 {
  
    NewArticlesV02 na2 = new NewArticlesV02();
    WrongProduct wn1 ;

   public NewRoundV02 (WrongProduct wn1 ){
       this.wn1 = wn1
   }
   //[rest der klasse]
}

Dann musst du beim Erstellen von NewRoundV02 ein WrongProduct-Objekt mitgeben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
E Hilfe zur Performance Verbesserung gesucht Java Basics - Anfänger-Themen 1
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
C Hilfe für Spielerweiterung gesucht Java Basics - Anfänger-Themen 4
C Hilfe für Kommentar-Zapper gesucht / Umgang mit Console Java Basics - Anfänger-Themen 0
1 Ansatz/Hilfe für ein Tool gesucht Java Basics - Anfänger-Themen 4
G Idee bzw. Hilfe gesucht Java Basics - Anfänger-Themen 6
U ArrayIndexOutOfBoundsException - dringend Hilfe gesucht Java Basics - Anfänger-Themen 8
T Blutiger Anfänger . hilfe gesucht. Java Basics - Anfänger-Themen 2
S Hilfe zu einfachstem Sortieralgorithmus gesucht Java Basics - Anfänger-Themen 2
B Hilfe bei Map Liste erstellen Java Basics - Anfänger-Themen 10
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R Java (Eclipse) "Lagerverwaltung" HILFE Java Basics - Anfänger-Themen 13
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 17
Gaudimagspam Dringend Java Hilfe benötigt Java Basics - Anfänger-Themen 19
jonathanpizza Hilfe bei einer Übungsaufgabe Java Basics - Anfänger-Themen 3
dieter000 Hilfe bei dem Beispiel, wie gehe ich sowas am besten an? Java Basics - Anfänger-Themen 32
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
R Hilfe bei removeduplicates Java Basics - Anfänger-Themen 5
D Brauche Dringend Hilfe...Prozedur/Funktionsprozedur Ergebnis augeben Java Basics - Anfänger-Themen 11
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
Q Hilfe bei Hausaufgeben Java Basics - Anfänger-Themen 2
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
S Hilfe Java Basics - Anfänger-Themen 1
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
Kawastori Hilfe bei Methoden Übung Java Basics - Anfänger-Themen 6
Chabub Hilfe bei Stacks und Queue Java Basics - Anfänger-Themen 2
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
A Hilfe bei Java Projekt Java Basics - Anfänger-Themen 4
I Brauche Hilfe bei Objektorientiertem programmieren Java Basics - Anfänger-Themen 23
B Hilfe bei Generics Java Basics - Anfänger-Themen 11
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
M Brauche Hilfe bei If-Scheifen Java Basics - Anfänger-Themen 2
M Hilfe bei Strukturierung eines Buchungssystems Java Basics - Anfänger-Themen 3
J Replace mit Hilfe von ArrayLists Java Basics - Anfänger-Themen 6
J Hilfe bei Übungsaufgabe Java Basics - Anfänger-Themen 17
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
K Error bei meinem Programm - Hilfe Java Basics - Anfänger-Themen 8
B Hilfe bei einer rekursiven Methode Java Basics - Anfänger-Themen 3
K Java Projekt Hilfe Java Basics - Anfänger-Themen 5
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
A suche dringend Hilfe!! Java Basics - Anfänger-Themen 6
S Hilfe. Generics und BiFunctions Java Basics - Anfänger-Themen 10
L hilfe run button funktioniert nicht Java Basics - Anfänger-Themen 13
S Hilfe : Unendlich viele Zufallszahlen erstellen? Java Basics - Anfänger-Themen 8
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
E Ich Brauche Hilfe Java Basics - Anfänger-Themen 3
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
F Hilfe - Wahrheitswert überprüfen ohne If Java Basics - Anfänger-Themen 2
M Hilfe bei Testfällen. Java Basics - Anfänger-Themen 12
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
A Hilfe, LinkedList Java Basics - Anfänger-Themen 2
F Hilfe für einen Anfänger! Java Basics - Anfänger-Themen 4
F Regex Hilfe Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
S Ein Java Anfänger braucht Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei meinem Code [Schleife]? Java Basics - Anfänger-Themen 5
S Brauche hilfe in Java [Fehler in mein Code]? Java Basics - Anfänger-Themen 2
S Wie ende ich mein Pogrammierung? [Hilfe] Java Basics - Anfänger-Themen 1
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
I Dezimalzahlen - Hilfe Java Basics - Anfänger-Themen 2
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
S Ein- Ausgaben Java [Hilfe] Java Basics - Anfänger-Themen 3
P Hilfe bei Double Java Basics - Anfänger-Themen 1
J Hilfe zu Codingame Java Basics - Anfänger-Themen 1
I Objekte Hilfe Java Basics - Anfänger-Themen 8
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B Dropbox Anbindung, Hilfe bei Authentification -> HttpServletRequest request Java Basics - Anfänger-Themen 3
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
Blender3D GOTO (aus Digitaluhr, Hilfe !) Java Basics - Anfänger-Themen 38
Z Digitaluhr, Hilfe ! Java Basics - Anfänger-Themen 24
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
Z Hilfe, Summenformel in Java Java Basics - Anfänger-Themen 15
I Hilfe bei experiment Java Basics - Anfänger-Themen 2
I Hilfe bei der Logik Java Basics - Anfänger-Themen 9
N Hilfe bei Unistoff Java Basics - Anfänger-Themen 3
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
M Hamstersimulator- lösung hilfe benotigt Java Basics - Anfänger-Themen 3
M Hamstersimulator Hilfe Java Basics - Anfänger-Themen 46
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
D Hilfe um Pseudocode Analyse! Java Basics - Anfänger-Themen 1
J Variablen Hilfe bei diesem Code Java Basics - Anfänger-Themen 6
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
F Potenz ausrechnen Hilfe! Java Basics - Anfänger-Themen 7
D Hilfe bei Codeverständnis Java Basics - Anfänger-Themen 15
F Hilfe bei Rekursion... Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Anzeige

Neue Themen


Oben