Methoden return nullprüfung

Zet

Aktives Mitglied
Guten Morgen zusammen,

ich habe eine kleine Frage bezüglich dieser Methode.

Java:
public Artikel getArtikel(String artikelbezeichnung)
	{
		if (Artikelliste.size() == 0)
		{
			System.out.println("Die Liste ist Leer");
		}

		for (Artikel a : Artikelliste)
		{
			if (a.getArtikelbezeichnung().equals(artikelbezeichnung))
			{
				return a;
			}
		}
		System.out.println("Artikel nicht vorhanden");
		return null;
	}

Ich stelle mir den Aufruf vor:
Java:
verkaufe(getArtikel("Java ist auch eine Insel"));

Nun ist das Element nicht in der Liste vorhanden, es wird also null zurückgegeben - was in diesem zusammenhang natürlich mist ist - wie kann man das elegant lösen? Oder ist die einzige möglickeit in der verkaufe-Methode zu testen ob das übergebene Objekt null ist?


Hoffe ihr habt ein wenig Erfahrung für mich :)

Lg
zet
 

Machareder

Bekanntes Mitglied
ähhhhhhhh sry was ist Mist? :D
naja du musst nicht ausgerechnet null zurückgeben, du kannst auch Strings oder ints zurückgeben. Aber was bringt dir das dann? Kommt halt drauf an was du mit dem zurückgegebenen weiter machen möchtest ;)
 

chuxXo

Bekanntes Mitglied
Hallo zet,
ich kann dir leider nicht ganz folgen :)
Wenn du was übergibst und es nicht in der Liste vorkommt, wolltest du doch, dass "null" zurückgegeben wird ?!
Wenn du mir genauer erklären kannst, was dein Problem ist, helfe ich dir gerne ;)
 

VfL_Freak

Top Contributor
Moin,

suchst Du vlt. sowas ?
Java:
Artikel myArtikel = getArtikel( "Java ist auch eine Insel" );
if( myArtikel != null )
{
    verkaufe( myArtikel );
}
else
{
   // gebe Fehler aus oder was auch immer ....
}

Gruß
Klaus
 

nvidia

Bekanntes Mitglied
In Java 8, unter der Annahme das Artikelliste irgendeine Collection ist, sowie verkaufe eine Methode eines Objekts, ungefähr so

Java:
public Optional<Artikel> getArtikel(final String bezeichnung){
    return Artikelliste.stream()
            .filter(a -> Objects.equals(bezeichnung, a.getArtikelbezeichnung()))
            .findFirst();
}

//Aufruf
getArtikel("Java ist auch eine Insel").ifPresent(this::verkaufe);
 
Zuletzt bearbeitet:

Zet

Aktives Mitglied
// EDIT:
@VfL_Freak
Ich denke das kommt in etwa hin, wie würdest du im else weitermachen?


Java:
Artikel myArtikel = oVerwaltung.getArtikel("Java ist auch eine Insel"); // --> dieser Artikel existiert nicht, null rückgabe
oVerwaltung.insert(myArtikel);                          // --> NPE, versucht null in ArrayList<Artikel> zu packen
oVerwaltung.ausgabe();

Und soetwas möchte ich eben entgegenwirken.
Desto mehr ich darüber nachdenke desto weniger Sinn macht das ganze für mich :bahnhof:
Hat jemand zufällig eine Verwaltung oder ähnliches rumliegen, vielleicht geh ich das ganze schon vom Prinzip her falsch an.
Oder kann ich einfach mal den Code posten, und ihr gebt euren Senf dazu? :bae:
Ich möchte einfach sicherstellen nicht auf irgendwelche exceptions zu fliegen.






[OT]Uiuiui, da hab ich mich wohl äußerst unverständlich ausgedrückt :D.
War auch nur ein Beispiel das ich mir schnell aus den Fingern gezogen habe.

Also ich dachte mir einfach nur das es unschön ist null zurückzugeben, denn damit müsste ich ja in jeder Methode die getArtikel mal aufrufen wird, prüfen ob der Return-Wert null ist. Und irgendwann fliegt man da sicher über eine NPE.

Deshalb hätte ich es schön gefunden noch in der Methode dagegenzusteuern null zurückzugeben. Was natürlich schwer ist wenn die Methode besagt das sie ein Objekt zurückgibt.. hehe. Ich habe einfach mal ins blaue gefragt ob es da nicht elegantere Alternativen gibt, soll ja vieles in Java geben was man nicht kennt.. ;)

Lange rede garkein Sinn, habe einen schönen/komfortablen Weg gesucht mit NULL umzugehen.
Eine art "best Practice" wie man hier vorgeht.

Trotzdem danke an alle, die versucht haben meinen geistigen Ergüsse zu folgen :D
[/OT]


Grüße
Zet
 
Zuletzt bearbeitet:

Thallius

Top Contributor
Was auf jeden Fall quatsch ist, dass du wenn die Liste leer ist was anderes zurück gibst als wenn der Artikel nicht in der Liste ist. Also entweder bei beiden null zurück geben oder bei beiden "Der Artikel befindet sich nicht in der Liste"

Gruß

Claus
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
A Return in While Schleife Java Basics - Anfänger-Themen 6
J Rekursive Funktion und return statement Java Basics - Anfänger-Themen 3
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
S Methoden Return Rückgabewert wird nicht übergeben Java Basics - Anfänger-Themen 8
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
I Return Array Java Basics - Anfänger-Themen 4
Q return Ausgabe Java Basics - Anfänger-Themen 4
javapingu Variablenwerte ändern ohne return Statement? Java Basics - Anfänger-Themen 7
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
G return 1 + methode Java Basics - Anfänger-Themen 4
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
JD_1998 Hilfsmethode if return funktioniert nicht Java Basics - Anfänger-Themen 2
J Missing Return Statement Java Basics - Anfänger-Themen 11
T Return einer anderen Methode herausfinden Java Basics - Anfänger-Themen 9
C ArrayList mit return zurückgeben Java Basics - Anfänger-Themen 13
M kann man return in nur einer Methode einsetzen? Java Basics - Anfänger-Themen 7
V return String[] führt zu [Ljava.lang.String;@50675690 Java Basics - Anfänger-Themen 7
K Return in Schleife Java Basics - Anfänger-Themen 4
B Statische Methode return funktioniert nicht. Java Basics - Anfänger-Themen 19
S Missing return Java Basics - Anfänger-Themen 4
das_leon return message Java Basics - Anfänger-Themen 2
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
R return: cannot find symbol Java Basics - Anfänger-Themen 2
R Ratespiel mit Return und einer Eingabe Java Basics - Anfänger-Themen 1
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Frage zu this, super und return Java Basics - Anfänger-Themen 13
K ArrayList ausgeben mit return Java Basics - Anfänger-Themen 6
M Return statement Java Basics - Anfänger-Themen 4
J-Gallus Ein Getter bekommt eine anderen Type als er Return soll Java Basics - Anfänger-Themen 9
J Variablen Komsiche System.in.read() return-value? Java Basics - Anfänger-Themen 3
M Abbrechen Methode ohne return Java Basics - Anfänger-Themen 3
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
L OOP Return Java Basics - Anfänger-Themen 10
L Erste Schritte Frage zu 'return' Java Basics - Anfänger-Themen 4
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
W Return statement in Methode nur bei if-clause Java Basics - Anfänger-Themen 3
D Methoden Return-Wert wird nicht ausgegeben Java Basics - Anfänger-Themen 3
F Return-Anweisung Java Basics - Anfänger-Themen 2
E Erste Schritte <? super Unterklasse> Return-Typ darf nicht vom Wildcard-Typ sein Java Basics - Anfänger-Themen 5
B OOP Methode mit Array mit return verlassen Java Basics - Anfänger-Themen 8
J Grundsätzliche Frage zu return Types in Methoden Java Basics - Anfänger-Themen 6
G return-wert für eine Methode Java Basics - Anfänger-Themen 1
B Methoden Probleme mit for Schleife und return Java Basics - Anfänger-Themen 5
Q Tastatureingabe direkt nach Eingabe (ohne zwischenzeitliches "Return" o.Ä ) weiterverwenden Java Basics - Anfänger-Themen 1
B Variablen Problem mit return String[] Java Basics - Anfänger-Themen 4
O Per return Run Methode beenden Java Basics - Anfänger-Themen 3
M Arrays als return Value? Java Basics - Anfänger-Themen 2
C Return statement Java Basics - Anfänger-Themen 10
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
O Java return in Schleife Java Basics - Anfänger-Themen 4
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
G Methoden Was bedeutet return in einer Methode Java Basics - Anfänger-Themen 5
Y Warum void statt Datentyp + return Java Basics - Anfänger-Themen 4
K Variablen RETURN in Case-Switch / This method must return a result of type Item Java Basics - Anfänger-Themen 4
K Erste Schritte "return" Problem bei Rekursion Java Basics - Anfänger-Themen 8
R If Verschachtelung und return; Java Basics - Anfänger-Themen 4
M Frage zum return; Befehl Java Basics - Anfänger-Themen 1
S try-catch - Variablen werden nicht an return übergeben Java Basics - Anfänger-Themen 3
C Einige Anfängerfragen (Return-Wert, Exception...) Java Basics - Anfänger-Themen 11
S Methoden Return Java Basics - Anfänger-Themen 8
T return-Wert verwenden? Java Basics - Anfänger-Themen 12
T Return eines Int-Werts? Java Basics - Anfänger-Themen 3
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
R Return in If Java Basics - Anfänger-Themen 10
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
G array return methode Java Basics - Anfänger-Themen 10
L return wird nicht erkannt? Java Basics - Anfänger-Themen 3
J Regex mit Return Java Basics - Anfänger-Themen 3
M Variablen return-array klonen Java Basics - Anfänger-Themen 3
A Methode mit Array als Param --> return Array --> Fehler Java Basics - Anfänger-Themen 3
S Zeichen einlesen ohne Return? Java Basics - Anfänger-Themen 19
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
S probleme mit der return anweisung Java Basics - Anfänger-Themen 20
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
V Erste Schritte Return ohne Argument Java Basics - Anfänger-Themen 6
I Methoden Missing return statement; Intervallschachtellung Java Basics - Anfänger-Themen 12
S Frage zu Vererbung und return. Java Basics - Anfänger-Themen 4
R return (mehrere floats) Java Basics - Anfänger-Themen 11
E Return String Java Basics - Anfänger-Themen 10
P Methoden Methode ohne return abbrechen? Java Basics - Anfänger-Themen 12
I Return Befehl in Methode Java Basics - Anfänger-Themen 13
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
P Return aus For-Schleife Java Basics - Anfänger-Themen 19
S return in GUI ? Java Basics - Anfänger-Themen 12
M This method must return a result of type int Java Basics - Anfänger-Themen 13
F Erste Schritte return (char)toUnsignedInt(value) Java Basics - Anfänger-Themen 2
A Falscher Return-Wert Java Basics - Anfänger-Themen 2
M missing return statement?! Java Basics - Anfänger-Themen 4
L Return Fragen Java Basics - Anfänger-Themen 4
R Nach return() der aufgerufenen Methode wird aufrufende Methode nicht weiter ausgeführt Java Basics - Anfänger-Themen 14
I Null als return obwohl datensatz existiert Java Basics - Anfänger-Themen 12
S this method must return a result of type double Java Basics - Anfänger-Themen 2
V Problem mit return Java Basics - Anfänger-Themen 7
K Return Problem Java Basics - Anfänger-Themen 3
M Fragen zu Methoden (void/return), Übergabe von Parametern Java Basics - Anfänger-Themen 3
M Objekto.Programm. Return-Befehl Java Basics - Anfänger-Themen 4
R warum liefert ein und dieselbe funktion nicht dasselbe return?? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben