Bei einer Abfrage ob etwas null ist NullPointerException?

Brockdish  14.08.2020, 20:50

Wie hast du die Config erstellt?

ShaXoW 
Fragesteller
 14.08.2020, 22:38

Das Problem hat sich wie in der Antwort unten zu sehen schon gelöst.

Hab nur vergessen die Config zu speichern

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Du versuchst auf einem nicht vorhandenen Objekt eine Methode aufzurufen. Da das Objekt nicht da ist, ist auch die Methode nicht da.

Probiere

if(config.getString("messages.Join") == null) {	
}
Woher ich das weiß:Studium / Ausbildung – Informatik
ShaXoW 
Fragesteller
 14.08.2020, 18:02

Es funktioniert! Danke

Aber wo ist der unterschied wenn ich .equals oder == eingebe?

0
Waldelb3  14.08.2020, 18:15
@ShaXoW

Config ist ein Objekt.

Die Methode getString() liefert, wenn möglich, einen String zurrück.

Ein String ist ein Objekt.

Jeder String hat die Methode equals(), die ihn selbst mit einem anderen String vergleicht.

Jetzt hat dir getString() aber keinen String, sondern den Wert null zurückgeliefert, weil in config die Vorraussetzungen zum Liefern eines Strings nicht gegeben sind.

Der Wert null hat natürlich auch keine Methode equals().

Wäre der String nicht null, würde deine Methode funktionieren und zwei Strings miteinander vergleichen, ob sie gleich sind.

== prüft auf "echte gleichheit", also ob zwei Strings identisch (also der selbe String) sind.

Das ist eine Eigenheit von Java, gilt aber zum Glück nur für Strings, alle anderen Werte kannst du normal mit == vergleichen.

a="toller string"
b="toller string"

a==b -> false
a==a -> true
a.equals(b) -> true
1