NullPointerException: try oder if

Status
Nicht offen für weitere Antworten.

MKWWG

Mitglied
Hallo erstmal!
Nehmen wir mal an, dass ich eine Methode habe, die mir ein TestObject zurück gibt.
Nun möchte ich gerne mit diesem TestObject weiter arbeiten.
Allerdings besteht die Gefahr, dass es auch null sein kann.
Dann soll ein anderes TestObject verwendet werden.

Jetzt frag ich mich, was sinnvoller ist:

to auf null mit if(to == null) prüfen
Code:
TestObject to = Object.get();
if(to == null)
to = Object.getAnderesObject();
to.getName();

oder
- mit try catch eventuell einen NullPointerException abfangen und in catch mit dem anderen Object weiter arbeiten.
Code:
TestObject to = null;
try{
Object.get().getName();
}
catch(NullPointerException e)
{
Object.getAnderesObject().getName();
}

Ich denke mal, dass die Version mit try länger dauert, wenn get() null liefert, als die über if.
Allerdings muss bei if jedes Mal to auf null getestet werden.
Wenn die Wahrscheinlichkeit nicht sehr hoch ist, dass to null ist, aber es dennoch nicht ausgeschlossen ist, kann ich dann try verwenden? Oder dauert das auch länger, wenn to nicht null ist?
Wann rentieren sich if und try?
 
G

Gast2

Gast
Moin,

Code:
if(to == null)
to = Object.getAnderesObject();

das ist ganz schlecht ... für ungeübte Laien gibt das nur Probleme ... entweder

Code:
if(to == null) to = Object.getAnderesObject();

oder

Code:
if(to == null)
{
    to = Object.getAnderesObject();
}

in beiden Fällen ist der Programmfluß eindeutiger ... der letztere Fall ist aber zu empfehlen

hand, mogel
 
G

Gast

Gast
@mogel: Man sollte immer Klammern setzen, nicht nur als Laie. Das gibt mehr Übersicht und vereinfacht die Bearbeitung des Codes, weil man nur einen weiteren Befehl innerhalb der klammern schreiben muss
 

MKWWG

Mitglied
Also ich finde

Code:
if(to == null) to = Object.getAnderesObject();

nicht so eindeutig wie


Code:
if(to == null) 
    to = Object.getAnderesObject();

Aber ich finde, dass es jeder so machen sollte wie es für ihn am besten ist. ;)
(Ok, ich hab bei meinem Beispiel die Leerzeichen vergessen.)
Dafür stellen die meisten IDEs ja die passenden Einstellungen bereit.

Kommt auch irgendwie auf die Anwendung an, denn das hier find ich alles andere als übersichtlich:

Code:
if(to == null)
{
   to = Object.getAnderesObject(1);
}

if(to == null)
{
   to = Object.getAnderesObject(2);
}

if(to == null)
{
   to = Object.getAnderesObject(3);
}

if(to == null)
{
   to = Object.getAnderesObject(4);
}

if(to == null)
{
   to = Object.getAnderesObject(5);
}

Da ist das hier irgendwie übersichtlicher:

Code:
if(to == null)
   to = Object.getAnderesObject(1);

if(to == null)
   to = Object.getAnderesObject(2);

if(to == null)
   to = Object.getAnderesObject(3);

if(to == null)
   to = Object.getAnderesObject(4);

if(to == null)
   to = Object.getAnderesObject(5);


Aber zurück zu meinem eigentlichen Problem - woraus sich die Frage mehr oder weniger gestellt hat:
Ich hab ein Objekt, das intern eine Liste mit Objekten hat.
Die Objekte kann man mit add() und remove() hinzufügen und löschen.
Dafür hab ich bis jetzt zwei verschiedene Wege gesehen:

1.) Die Liste wird im Constructor erzeugt.
2.) In add() und remove() wird überprüft ob eine Liste vorhanden ist und bei Bedarf erzeugt.

Kann man da etwas generell bevorzugen?
 
G

Gast

Gast
in java würd ich so machen
Code:
if(to == null) {
   to = Object.getAnderesObject(1);
}
if(to == null) {
   to = Object.getAnderesObject(2);
}
dann sind alle Zweifel weg und wenn diu noch ein Sys.out einfügst oder was bist du immer am dem richtigen Ort

1 oder 2 hmm.

ich denke 1. vor allem wenn viele add da sind muss sonst immer wieder auf null getestet werden
 

HLX

Top Contributor
MKWWG hat gesagt.:
Da ist das hier irgendwie übersichtlicher:

Code:
if(to == null)
   to = Object.getAnderesObject(1);

if(to == null)
   to = Object.getAnderesObject(2);

if(to == null)
   to = Object.getAnderesObject(3);

if(to == null)
   to = Object.getAnderesObject(4);

if(to == null)
   to = Object.getAnderesObject(5);
Wie wär´s mit:
Code:
int i = 1;
while(to == null && i < object.getSizeOfList())  { // getSizeOfList gibt die Größe der Liste zurück
    to = object.getAnderesObject(i);
}

MKWWG hat gesagt.:
Aber zurück zu meinem eigentlichen Problem - woraus sich die Frage mehr oder weniger gestellt hat:
Ich hab ein Objekt, das intern eine Liste mit Objekten hat.
Die Objekte kann man mit add() und remove() hinzufügen und löschen.
Dafür hab ich bis jetzt zwei verschiedene Wege gesehen:

1.) Die Liste wird im Constructor erzeugt.
2.) In add() und remove() wird überprüft ob eine Liste vorhanden ist und bei Bedarf erzeugt.

Kann man da etwas generell bevorzugen?
Ich würde sie im Konstruktor erzeugen.
 

Marco13

Top Contributor
Code:
if(to == null)
   to = Object.getAnderesObject(1);

if(to == null)
   to = Object.getAnderesObject(2);

if(to == null)
   to = Object.getAnderesObject(3);

if(to == null)
   to = Object.getAnderesObject(4);

if(to == null)
   to = Object.getAnderesObject(5);
Finde ich auch nicht sooo toll - WENN schon kompakt dann so, dass man die menschlichen Fähigkeiten zur Mustererkennung ausnutzt
Code:
if(to == null) to = Object.getAnderesObject(1);
if(to == null) to = Object.getAnderesObject(2);
if(to == null) to = Object.getAnderesObject(3);
if(to == null) to = Object.getAnderesObject(4);
if(to == null) to = Object.getAnderesObject(5);
Man sieht auf einen Blick, dass alle Fälle gleich sind, und sich nur durch die Zahl am Ende unterscheiden. Aber für sowas extra die Codeformatierung bei der IDE ausschalten ist u.U. auch nicht so toll :?
 

FArt

Top Contributor
Marco13 hat gesagt.:
Code:
if(to == null) to = Object.getAnderesObject(1);
if(to == null) to = Object.getAnderesObject(2);
if(to == null) to = Object.getAnderesObject(3);
if(to == null) to = Object.getAnderesObject(4);
if(to == null) to = Object.getAnderesObject(5);
Wenn ich so etwas im Code habe, würde ich sagen, dass ich da was falsch gemacht habe, oder?... ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
H Liste Knoten NullPointerException Java Basics - Anfänger-Themen 7
C Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 10
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
berserkerdq2 Nullpointerexception, obwohl ich Array initialisiere? Java Basics - Anfänger-Themen 1
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
missy72 Klassen Objekt Array NullPointerException Java Basics - Anfänger-Themen 3
Jose05 Nullpointerexception Java Basics - Anfänger-Themen 7
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
Jose05 Nullpointerexception bei Umwandlung von String zu int Java Basics - Anfänger-Themen 2
H Java NullPointerException Java Basics - Anfänger-Themen 4
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
L Threads Komischer NullPointerException Java Basics - Anfänger-Themen 2
H Fehler: NullPointerException und ich weiß net warum Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
Avalon NullPointerException beim Mocken Java Basics - Anfänger-Themen 6
D NullPointerException in foreach loop Java Basics - Anfänger-Themen 1
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
T Bufferedwriter code Nullpointerexception Java Basics - Anfänger-Themen 4
D NullPointerException im Array Java Basics - Anfänger-Themen 4
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
J NullPointerException beim Klonnen eines Arayys und beim aufrufen einer Methode Java Basics - Anfänger-Themen 2
V NullPointerException Java Basics - Anfänger-Themen 2
S NullPointerException während ResultSet Java Basics - Anfänger-Themen 7
V NullPointerException, wenn Key und Value null sind Java Basics - Anfänger-Themen 2
scratchy1 NullPointerException Java Basics - Anfänger-Themen 19
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
F Wie kann ich diese NullPointerException umgehen?! Java Basics - Anfänger-Themen 41
dapzoo Compiler-Fehler Beim Werte verteilen in Objektarray NullPointerException Java Basics - Anfänger-Themen 4
W Optional<T> - NullPointerException Java Basics - Anfänger-Themen 37
Jascha NullPointerException vs NumberFormatException Java Basics - Anfänger-Themen 5
L Variablen NullPointerException bei Dateigröße (Nr.1) Java Basics - Anfänger-Themen 4
M Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 13
D NullPointerException umgehen Java Basics - Anfänger-Themen 17
Z Objekt Array führt zum NullPointerException Java Basics - Anfänger-Themen 2
W NullPointerException obwohl nicht null? Java Basics - Anfänger-Themen 3
W ArrayList NullPointerException Java Basics - Anfänger-Themen 4
A NullPointerException Java Basics - Anfänger-Themen 6
S NullPointerException Java Basics - Anfänger-Themen 4
T OOP Wörterbuch NullPointerException Java Basics - Anfänger-Themen 4
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
O NullPointerException Java Basics - Anfänger-Themen 2
M Interpreter-Fehler Feld NullPointerException Java Basics - Anfänger-Themen 4
L Variablen Unerklärliche NullPointerException Java Basics - Anfänger-Themen 2
E Compiler-Fehler nullPointerException in verschachteltem Modell Java Basics - Anfänger-Themen 6
DaCrazyJavaExpert Threads NullPointerException Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
kodela NullPointerException Java Basics - Anfänger-Themen 12
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
H NullPointerException obwohl Objekt angelegt wurde Java Basics - Anfänger-Themen 1
A Threads Reentrantlock | NullpointerException möglicher Deadlock? Java Basics - Anfänger-Themen 0
K Compiler-Fehler NullPointerException lösen Java Basics - Anfänger-Themen 16
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
P Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 1
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S Methoden Methode funktioniert nicht | NullPointerException Java Basics - Anfänger-Themen 6
F NullpointerException bei zweidimensionalem Array Java Basics - Anfänger-Themen 2
Z OOP - Array ständig NullPointerException Java Basics - Anfänger-Themen 4
J Verstehe die NullPointerException nicht Java Basics - Anfänger-Themen 1
T Nullpointerexception und es wird nichts angezeigt Java Basics - Anfänger-Themen 15
H NullPointerException, aber wieso? Java Basics - Anfänger-Themen 5
B ProcessMessage NullPointerException Java Basics - Anfänger-Themen 11
shiroX Compiler-Fehler NullPointerException Java Basics - Anfänger-Themen 9
MrSnake ItemListener mit NullPointerException Java Basics - Anfänger-Themen 3
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
M NullPointerException Java Basics - Anfänger-Themen 8
B Vererbung NullPointerException Java Basics - Anfänger-Themen 38
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
G NullPointerException Java Basics - Anfänger-Themen 1
J NullpointerException Java Basics - Anfänger-Themen 1
M Interpreter-Fehler Nullpointerexception trotz Ordentlicher Initialisierung Java Basics - Anfänger-Themen 4
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
X Problem mit NullPointerException Java Basics - Anfänger-Themen 2
K NullPointerException in der Hashtable Java Basics - Anfänger-Themen 4
S Interpreter-Fehler Hilfestellung bei einer NullPointerException Java Basics - Anfänger-Themen 1
S GraphNode --- Dijkstra Algorithmus : NullPointerException Java Basics - Anfänger-Themen 1
L NullPointerException Java Basics - Anfänger-Themen 11
M Nullpointerexception??? Java Basics - Anfänger-Themen 2
W NullPointerException bei DefaultListModel Java Basics - Anfänger-Themen 5
N NullPointerException bei Konsolenausgabe Java Basics - Anfänger-Themen 5
J Klasse in Klasse; NullPointerException Java Basics - Anfänger-Themen 8
R NullPointerException wegen JPanel oder doch nicht ? Java Basics - Anfänger-Themen 7
Q NullPointerException Java Basics - Anfänger-Themen 5
H NullPointerException Java Basics - Anfänger-Themen 5
T Threads MultiThreading NullPointerException Java Basics - Anfänger-Themen 7
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
O Objekt weitergeben Meth Class NullPointerException Java Basics - Anfänger-Themen 2
J Char-Array - NullPointerException Java Basics - Anfänger-Themen 3
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Array wird nicht übernommen NullPointerException Java Basics - Anfänger-Themen 6
S Datentypen List.toString wirft NullPointerException Java Basics - Anfänger-Themen 5
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben