Artikelbestand

Devanther

Top Contributor
Achso!
Code:
public void neuerArtikel(Artikel artikel)
    {
       artikel.gibNummer();


        for(Artikel aktuellerArtikel: lager){
              if (aktuellerArtikel.gibNummer() == nummer) {
                 System.out.println("Es existiert bereits ein Artikel mit dieser Nummer!");
                 return;// Methode verlassen und nichts weiter tun
              }
         }
       lager.add(artikel);
    }

Es kommt keine Fehlermeldung aber es funktioniert immer noch nicht.
Es können immer noch mehrere Artikel mit der selben Nummer eingefügt werden.
 

Devanther

Top Contributor
Code:
public void neuerArtikel(Artikel artikel)
    {
       artikel.gibNummer();
       return;

        for(Artikel aktuellerArtikel: lager){
              if (aktuellerArtikel.gibNummer() == artikel) {
                 System.out.println("Es existiert bereits ein Artikel mit dieser Nummer!");
                 return;// Methode verlassen und nichts weiter tun
              }
         }
       lager.add(artikel);
    }

Ich bekomm die Fehlermeldung bei "==artikel" einfach nicht weg.
incomparable types: int and Artikel
 

thecain

Top Contributor
Was gibts denn für Methoden auf Artikel? eventuell ein gibNummer (ja, das ist rhetorisch)?

Grundlagen, Grundlagen, Grundlagen.. seit 11 Seiten das Selbe...

Ach ja... jetzt ist das eine Return übrigens falsch... weisst du was return macht?
 
X

Xyz1

Gast
Lesen, lesen, lesen... verstehen... anwenden... UND DANN ERST Frage(n) stellen.
Sonst hat es ein Potential, ein sehr langes Thema mit viiielen Aufrufen zu werden.
Was ich eigentlich sagen wollte oder, ich halte mich raus aus dem Thema. :D
 

Devanther

Top Contributor
return, gibt etwas zurück.
Ich weiss es nicht, ich komme nicht weiter.
Immer wenn ich was verändere kommen Fehlermeldungen.

edit:
Code:
public void neuerArtikel(Artikel artikel)
    {
       artikel.gibNummer();
       return;

        for(Artikel aktuellerArtikel: lager){
              if (aktuellerArtikel.gibNummer() == artikel.gibNummer(){
                 System.out.println("Es existiert bereits ein Artikel mit dieser Nummer!");
                 return;// Methode verlassen und nichts weiter tun
              }
         }
       lager.add(artikel);
    }

So? Dann kommt bei der { eine Fehlermeldung -.-
 

Joose

Top Contributor
Ich weiss es nicht, ich komme nicht weiter.
Immer wenn ich was verändere kommen Fehlermeldungen.

Dann lerne die Grundlagen und versuche dich an einfacheren Beispielen.
Du hast einfach noch große Lücken im Grundwissen und weißt nicht mal um die korrekte Syntax eines Java Programmes bescheid.
Außerdem musst du lernen die Fehlermeldungen die dir eine IDE (oder der Compiler) zeigt zu lesen und zu verstehen. Auch selbst im Internet nach Lösungen zu suchen gehört dazu. (nein gleich im Forum einen Thread aufmachen ist nicht nach einer Lösung suchen)
Und bevor du Änderungen am Code vornimmst solltest du dir im klaren sein welche Auswirkungen diese Änderungen am verhalten haben.

So? Dann kommt bei der { eine Fehlermeldung -.-
Wenn du schon sagst das eine Fehlermeldung kommt dann sag immer dazu welche Fehlermeldung! Wir wollen nicht raten!

Code:
if (aktuellerArtikel.gibNummer() == artikel.gibNummer(){
Schau dir doch nochmal das Kapitel zu if-Blöcken an und wie die Syntax dazu ausschaut und dann überlege dir warum du hier einen Fehler bekommst ;)
Ansonsten einfach mal nach deiner Fehlermeldung googlen ... du bist nicht der erste der dieses Problem hat und es gibt unzähliche Foren und Seiten wo die Lösung schon geschrieben steht.
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn die Fehlermeldung sagt, dass er eine Klammer erwartet, wie könnte man das wohl beheben?
Hast du mal die Klammern in der Zeile gezählt?
 

Harry Kane

Top Contributor
Muss mich noch ein letztes Mal zu Wort melden.
Wenn dem BlueJ an der markierten Stellen ausser "Error(s) found in class" keine weitere Erklärung oder Fehlermeldung mehr einfällt, ist es nicht für Einsteiger geeignet.
@TE Wenn du allerdings mit den bisherigen Hinweisen immer noch nicht imstande bist, den Fehler zu beheben (an der von BlueJ markierten Stelle fehlt nämlich wie schon mehrfach gesagt ein ")"), solltest du einfach mal Java lernen und nicht nur Aufgaben und Quellcode hier im Forum posten.
[edit] Ich habe gerade in NetBeans eine Testklasse mit unreachable statements erstellt. NB kan sie sogar ausführen, und bei Änderungen an der Klasse (die den unreachable Code aber nicht beheben) sehe ich auch die gemachten Änderungen auf der Konsole. Der javac steigt allerdings mit einer Fehlermeldung aus. KA was NB da im Hintergrund deichselt. Wenn BlueJ das aber ähnlich handhabt (also auch fehlerhaften Code irgendwie ausführen kann), kann es gut sein, das der TE vom unreachable code nix mitbekommt, wei BlueJ den Fehler nicht anzeigt und die Klasse bzw. Methode trotzdem bis zum return ausführt. Das Verhalten wäre allerdings eine guter Grund, auf was anderes umzusteigen.
 
Zuletzt bearbeitet:

thecain

Top Contributor
") expected" hat er ja vorher erwähnt, das muss er ja von irgendwo haben...

@TE, mach jetzt einfach mal diese Klammer die er dir anmerkt...

Und ich bin wieder maximal passiver Leser hier.. das führt zu nix
 

Devanther

Top Contributor
Ich weiss es nicht, kann jemand den vollständigen Quelltext der Methode
public void neuerArtikel(Artikel artikel) posten?
Egal was ich mache, es kommt immer irgendwo ne Fehlermeldung.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich habe gerade in NetBeans eine Testklasse mit unreachable statements erstellt. NB kan sie sogar ausführen, und bei Änderungen an der Klasse (die den unreachable Code aber nicht beheben) sehe ich auch die gemachten Änderungen auf der Konsole. Der javac steigt allerdings mit einer Fehlermeldung aus. KA was NB da im Hintergrund deichselt. Wenn BlueJ das aber ähnlich handhabt (also auch fehlerhaften Code irgendwie ausführen kann), kann es gut sein, das der TE vom unreachable code nix mitbekommt, wei BlueJ den Fehler nicht anzeigt und die Klasse bzw. Methode trotzdem bis zum return ausführt. Das Verhalten wäre allerdings eine guter Grund, auf was anderes umzusteigen.
Müsste der Eclipse-Compiler sein, der kompiliert auch bei einfachen Fehlern - an den entsprechenden Stellen würde dann ne Exception geworfen werden. Zum entwickeln manchmal ganz praktisch
 

mrBrown

Super-Moderator
Mitarbeiter
Wobei ja gerade der Fall "unreachable Statement" kein Fehler ist der Exceptions werfen sollte. Ich frage mich sowieso wieso der Compiler mich da bevormundet und behauptet das wäre ein Fehler ?

Weil das in so ziemlich jedem Fall ein Fehler ist? Nicht erreichbarer Code ist doch kein Code, der „richtig“ ist.

Von mir aus könnte der Compiler da gern noch deutlich mehr anmeckern ;)
 

Devanther

Top Contributor
Ja, die vollständige Methode von public void neuerArtikel(Artikel artikel).
Sodass kein Artikel mit der selben Nummer eingefügt werden kann und ne Fehlermeldung endlich mal kommt.
 

Harry Kane

Top Contributor
Java:
    public void neuerArtikel(Artikel artikel){
        for(Artikel vorhandenerArtikel: lager){
            if(vorhandenerArtikel.gibNummer() == artikel.gibNummer(){
                System.out.println("Es existiert bereits ein Artikel mit dieser Nummer");
                return;
            }
        }
        lager.add(artikel);
    }
 

Devanther

Top Contributor
@Harry Kane
Ja, danke. Es geht alles. Das war jetzt einfach.
Ich habe mich nur auf die Klammer konzentriert, und den Fehler mit return nicht berücksichtigt bzw. artikel.gibNummer war falsch.
 

Harry Kane

Top Contributor
Na dann so:
Java:
public void neuerArtikel(Artikel artikel){
   Artikel suchErgebnis = findeArtikel(artikel.gibNummer());
       if(suchErgebnis != null){
           System.out.println("Es existiert bereits ein Artikel mit dieser Nummer");
       }
       else{
            lager.add(artikel);
       }
}
 

Neue Themen


Oben