Prüfen, ob Variable initialisiert ist

Hallo zusammen,
ich bastel an einem Programm und habe da eine Klasse, die eine Anweisung als String bekommt, den splittet und die Werte Mehreren Feldern zuweist.
Der Kontext sei jetzt mal egal, es gibt auf jeden Fall mehrere Felder die deklariert werden (String x; int y; usw) aber nicht zwingend zugewiesen werden.
Ich würde gern eine toString Methode schreiben, die alle belegten Felder ausgibt.
In einer Sprache wie Python könnte ich jetzt sowas machen wie if x!=None… aber geht sowas auch in Java?
Und noch viel schlimmer: Kann ich unterscheiden, ob ein int mit 0 initialisiert wurde (int y:wink: oder 0 zugewiesen wurde (y = 0:wink: ?
LG
Johannes

Hallo elactic,

Also du hast mehrere Möglichkeiten.
Die einfachste wäre sicherlich im Konstruktor alle Werte einmal zu setzten.

Was mein ich damit ^^
Du hast in deiner Klasse im Konstruktor dann eine Initialisierungsmethode stehen die alle Werte setzt. Du kannst dir an dieser Stelle natürlich selber Werte ausdenken, die mit hoher Wahrscheinlichkeit nicht übergeben werden. zB.:

class Wurst {
String x;
int y;

public Wurst () {
this.init
}

privat void init () {
this.x = „leerer String“;
this.y = -1;
uws
}

public deineMethode () {}

public void toString(){
sysout.printlin(this.x + this.y + …);
}

wenn du nun ein Objekt deiner erstellst kannst du es normal verwenden
Wurst salami = new Wurst();
salami.toString();
salami.deineMethode(„ist aus schwein und kostet 3€“);
salami.toString();

so das sollte die erstmal als denk Anstoß helfen ^^

Wenn du noch andere Möglichkeiten zum Prüfen wissen möchtest,
kann ich (oder jmd anderes) die sicherlich auch helfen.

mfg DK

Hi,
das geht wie schon gesagt mit mehreren Möglichkeiten:
Für den String folgende:

x != null;
x.IsEmpty();

Ich würde dir eine Kombination empfehlen:

if (x != null && !x.IsEmpty()) {
 //das was du machen willst
}else{
 System.out.println("x ist leer oder null");
}

Letzteres geht nicht du könntest y mit irgendeinem Wert initialisieren z.B. so:

int y = Integer.MAX\_VALUE;

Lg Knerd

Hallo Johannes,

Und noch viel schlimmer: Kann ich unterscheiden, ob ein int
mit 0 initialisiert wurde (int y:wink: oder 0 zugewiesen wurde (y
= 0:wink: ?

nein, das geht nicht. Aber wenn du statt eines primitiven Werts ein Objekt benutzt (java.lang.Integer), kannst du zwischen 0 und null unterscheiden:

Integer y = null;
// y = 0;
if (y == null) ...
else if (y == 0) ... // Auto-Unboxing; Kurzschreibweise für y.intValue() == 0

Viele Grüße,

Andreas