Leere Objektreferenz mit != null vergleichen

Status
Nicht offen für weitere Antworten.

nrg

Top Contributor
Hallo Zusammen.

ich sitz grad an einer Übungsaufgabe und weiß zu folgendem Problem einfach nicht mehr weiter:

Java:
class VorratskammerTester2
{
  public static void main ( String[] args )
  {
    Marmelade stachelbeer = new Marmelade("Stachelbeer", "04.07.01", 12);
    Marmelade erdbeer = new Marmelade("Erdbeer", "31.09.03", 8);

    Vorratskammer vorrat = new Vorratskammer(stachelbeer, erdbeer);
    vorrat.ausgeben();
Java:
class Vorratskammer
{
  // Instanzvariablen
  private Marmelade  glas1 ;
  private Marmelade  glas2 ;
  private Marmelade  glas3 ;

  // Konstruktor der in diesem Fall aufgerufen wird
  }
  Vorratskammer(Marmelade glas1, Marmelade glas2)
  {
	  this.glas1 = glas1;
	  this.glas2 = glas2;
	  this.glas3 = null;  // eindeutige Nullzuweißung in die Referenzvariable glas3
	  glasAusgewaehlt = null;
  }
  // Methoden
  public void ausgeben()
  {
	System.out.println("Die Vorratskammer enthält:");
	if (glas1 != null)
		System.out.print("1: "); glas1.ausgeben();
	if (glas2 != null)
		System.out.print("2: "); glas2.ausgeben();
	if (glas3 != null) //Obwohl im Debugger zu sehen ist, dass diese Referenzvariable null ist, springt er rein
		System.out.print("3: "); glas3.ausgeben(); //genau hier knallts dann.... ist auch klar, weil die Referenz glas3 null ist. da soll er auch eigentlich garnet hineingehen :'(
  }
Java:
class Marmelade
{
  // Instanzvariablen
  private String inhalt;
  private String datum ;
  private int menge; 


  // Konstruktor
  Marmelade(String inhalt, String datum, int menge)
  {
    this.inhalt = inhalt;
    this.datum  = datum;
    this.menge  = menge;
  }

  // Methoden
  public void ausgeben()
  {
    System.out.println(inhalt + "   " +  datum + "   " +  menge + " Unzen.");
  }

Warum lässt sich die Objektreferenz nicht auf == bzw != null abprüfen, ob sie leer ist?

Ein Tipp hier wäre super :)

danke und grüße
andi
 

mvitz

Top Contributor
Java:
{
und
Java:
}
sind dein Freund.

Wenn du diese hinter if() weglässt, fällt nur das nächste Statement in den "If-Zweig", in deinem Falle ist dies lediglich das System.out.println(...)
 

nrg

Top Contributor
versteh ich jetzt nicht ganz... hinter jedem if steht doch auch nur genau ein statement...


Java:
	if (glas1 != null)
		System.out.print("1: "); glas1.ausgeben();
	if (glas2 != null)
		System.out.print("2: "); glas2.ausgeben();
	if (glas3 != null)
		System.out.print("3: "); glas3.ausgeben();

EDIT:
in deinem Falle ist dies lediglich das System.out.println(...)

mehr soll ja auch nicht rein ;)
 

mvitz

Top Contributor
Nein. Dort stehen jeweils 2 Statements

1: System.out.print(...);
2: glasX.ausgeben();

auch wenn beides in einer Zeile steht, so sind es 2 Statements.

Richtig wäre also:

Java:
if(glasX != null) {
  System.out.print(...);
  glasX.ausgeben();
}

Wegen deinem Edit:

Genau zu sehen ist es so, dein Code entspricht folgendem:

Java:
if (glas1 != null) {
  System.out.print("1: ");
}
glas1.ausgeben();
if (glas2 != null) {
  System.out.print("2: ");
}
glas2.ausgeben();
if (glas3 != null) {
  System.out.print("3: ");
}
glas3.ausgeben();
 

nrg

Top Contributor
ahhhh ok :). danke

edit: werde mir in Zukunft angewöhnen alles zu klammern. War mit den Klammern bis jetzt noch etwas geizig :p
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
T PDF-Generierung (itext) - läuft unter Eclipse, bei har aber leere Seite Allgemeine Java-Themen 39
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
KaffeeFan FileWriter nur leere Zeilen beschreiben Allgemeine Java-Themen 3
R Leere Verzeichnisse löschen Allgemeine Java-Themen 11
B LEERE JTable MouseListener + popupmenu Allgemeine Java-Themen 2
127.0.0.1 StringBuffer leere Zeile löschen Allgemeine Java-Themen 8
L leere Konsoleneingabe Allgemeine Java-Themen 10
T Drucken von variabel langen Listen (es kommen nur leere Seiten raus) Allgemeine Java-Themen 2
G POI: Leere Zelle nimmt keinen Type an Allgemeine Java-Themen 8
R ANT Jar Task soll leere Verzeichnisse ignorieren..? Allgemeine Java-Themen 3
G Leere Datei mit PrintWriter trotz flush und close Allgemeine Java-Themen 8
E JExcel- Zugriff auf leere Zellen kommt eine Fehlermeldung Allgemeine Java-Themen 6
G Leere Fenster (Keine Schrift, Reiter/ Buttons) bei Java Allgemeine Java-Themen 5
V Class Document seltsam leere Zeile am Anfang Allgemeine Java-Themen 8
H Leere Tabelle initialisieren Allgemeine Java-Themen 2
B wie behandelt man leere textfelder Allgemeine Java-Themen 11
R Gleiche Objektreferenz trotz clone()? Allgemeine Java-Themen 12
ruutaiokwu objektreferenz eines strings... Allgemeine Java-Themen 9
R Garbage Collection bei gegenseitiger Objektreferenz Allgemeine Java-Themen 2
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
Zrebna SonarLint: Warum kein Null-Referencing-CodeSmell-Hint hier? Allgemeine Java-Themen 23
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
8u3631984 Argument Captor liefert NULL zurück Allgemeine Java-Themen 2
E Class.getResourceAsStream() gibt null zurück Allgemeine Java-Themen 2
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
J Zahlen Abstand zur Null bestimmen Allgemeine Java-Themen 11
C javax.mail.Message message.setreplyto() null setzen (keine replyto Adresse) Allgemeine Java-Themen 25
S An internal error occurred during: Launching null argument Allgemeine Java-Themen 1
S Validation Null aber nicht Blank und muss Email sein Allgemeine Java-Themen 22
L Google Guice Field Injection returns null Allgemeine Java-Themen 2
E RMI NULL-Pointer-Exeception wenn der RMI-Proxy eine Methode deligiert Allgemeine Java-Themen 2
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
N MsgPack - Null Check Allgemeine Java-Themen 5
T JasperReports mit Null Pointer Allgemeine Java-Themen 3
DanielsLPecke Compiler-Fehler Warum ist der String null? Allgemeine Java-Themen 10
M Warten bis Variabel nicht null ist Allgemeine Java-Themen 18
Thallius Simple JSON Parser Error null Allgemeine Java-Themen 6
M Null byte in verschiedenen charsets Allgemeine Java-Themen 2
S Lambda Ausdrücke: @FunctionalInterface Instanzen auf null prüfen Allgemeine Java-Themen 9
B [Android] EditText-Object ist null - Nimmt nicht den Wert des enthaltenen Textfeldes ein Allgemeine Java-Themen 2
D Java Process OutputStream ist null Allgemeine Java-Themen 4
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
D Problem mit führender Null bei Schlüsselerzeugung Allgemeine Java-Themen 5
T Variablenübergabe liefert immer null Allgemeine Java-Themen 13
K Image beim catchen ist immer null Allgemeine Java-Themen 9
B Load of Known null Value Allgemeine Java-Themen 9
W Kleine Frage zu Null-Pinter-Exception Allgemeine Java-Themen 21
T Array Sortieren (null Werte ans Ende) Allgemeine Java-Themen 2
S Null Pointer Exception bei BufferedReader Allgemeine Java-Themen 4
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
Tobse Vererbung null aus Elternklasse "dominant"? Allgemeine Java-Themen 15
E Queue: Wie kann hier ein null-Pointer Exception auftreten?! Allgemeine Java-Themen 11
I newInstance() liefert null zurück Allgemeine Java-Themen 4
R Attribut null Allgemeine Java-Themen 6
C Regex: Zahl ohne führende Null Allgemeine Java-Themen 13
E rückgabewert ist immer null Allgemeine Java-Themen 2
N List auf null prüfen Allgemeine Java-Themen 2
TiME-SPLiNTER Von Unix, InputStreams und Null Bytes Allgemeine Java-Themen 2
R dateFormat - Uhr fängt nicht bei null an Allgemeine Java-Themen 2
P Null in ArrayList Allgemeine Java-Themen 3
N Strings mit null wiedergabe Splitten Allgemeine Java-Themen 4
mongole Formatter + null Allgemeine Java-Themen 4
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
A Umgang mit null Allgemeine Java-Themen 16
L Object = null? Allgemeine Java-Themen 16
L null pointer exception Allgemeine Java-Themen 10
J Null Pointer in der compare-Methode des Comparators? Allgemeine Java-Themen 18
T Set.contains() auch false wenn value == null? Allgemeine Java-Themen 4
D Matrix, ArrayList, null-Zellen Allgemeine Java-Themen 6
F Hibernate speichern - Null Allgemeine Java-Themen 5
knuckles12 null pointer exception bei arrays Allgemeine Java-Themen 6
T WeakHashMap: Wie "null" effizient abfangen? Allgemeine Java-Themen 5
N Null Durchblick in Java, Jobwechsel? Allgemeine Java-Themen 19
M nichtreferenzierte Objekte auf NULL setzen -> Performance Allgemeine Java-Themen 4
S JFreeChart LineChart Punkte über NULL Werte hinweg verbinden Allgemeine Java-Themen 5
N Array mit null Werten filtern Allgemeine Java-Themen 5
S Combobox --> liefer null? Allgemeine Java-Themen 3
A java.net.UnkownHostException: null bei jar-File Allgemeine Java-Themen 16
B Null Pointer Exception bei Canvas-objekt-Aufruf Allgemeine Java-Themen 12
H NullPointerException trotz Abfangen von null? Allgemeine Java-Themen 9
R if (obj == null || obj.isEmpty()) Allgemeine Java-Themen 21
P <null> in einer DB abfragen Allgemeine Java-Themen 4
G Nicht abgefangene Null-Pointer-Exception Allgemeine Java-Themen 2
P Image auf einem Panel mit null-Layout Allgemeine Java-Themen 8
M getResourceAsStream immer null Allgemeine Java-Themen 4
R Array komplett auf null setzen Allgemeine Java-Themen 10
A JasperReport Detail bringt null bei Datenübergabe Allgemeine Java-Themen 4
S Null Pointer Exception Allgemeine Java-Themen 10
S instanceof und null Allgemeine Java-Themen 7
M Führende Null in einem Datum Allgemeine Java-Themen 3
L null != null ? Allgemeine Java-Themen 16
Redfrettchen Rückgabe nicht sinnvoll: Exception oder null zurück? Allgemeine Java-Themen 9
B Null- oder IllegalArgumentException Allgemeine Java-Themen 12
C ImageIO die read-Methode liefert mir ein null- Wert zurück Allgemeine Java-Themen 10
K Exception im Konstruktor / Objekt == null Allgemeine Java-Themen 7
Z bedeutung (übersetzung) von null? Allgemeine Java-Themen 5
T Exception im Constructor -> null-Referenz zurückgeben Allgemeine Java-Themen 6
C Objekte null setzen? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben