Instanz von java.util.Date speichert ein Datum. Wie kannst du nichts darin speichern oder leer haben? Es kann nur Referenzen auf Instanzen von java.util.Date
speichern. Wenn Sie es machen null
bedeutet, dass es keine Instanz von java.util.Date
bezieht.
Sie haben versucht, date2="";
, was Sie von dieser Aussage zu tun, meinen Sie die Instanz von String
auf eine Variable verweisen möchten, die zum Speichern von java.util.Date
annehmen wird. Dies ist nicht möglich, da Java stark typisierte Sprache ist.
bearbeiten
Nach dem Kommentar zu der Antwort von geschrieben sieht LastFreeNicknamen
ich eine Form habe, dass das Datum Textbox standardmäßig leer in der Textbox sein soll, jedoch während der Einreichung die Daten, wenn der Benutzer nichts eingegeben hat, sollte es akzeptieren
Ich würde vorschlagen, Sie könnten überprüfen wenn das Textfeld leer ist. Und wenn es leer ist, dann könnte man Standarddatum in Ihrer Variable oder aktuelles Datum speichern oder zuweisen kann null
wie unten dargestellt:
if(textBox.getText() == null || textBox.getText().equals(""){
date2 = null; // For Null;
// date2 = new Date(); For Current Date
// date2 = new Date(0); For Default Date
}
Auch kann ich davon ausgehen, da Sie Benutzer fragen, ein Datum in einem eingeben TextBox
verwenden Sie eine DateFormat
, um den Text zu analysieren, der in TextBox
eingegeben wird.Wenn dies der Fall ist, können Sie einfach die dateFormat.parse()
aufrufen, die eine ParseException
wirft, wenn das Format, in dem das Datum geschrieben wurde, falsch ist oder eine leere Zeichenfolge ist. Hier im catch
Block können Sie die oben genannten Aussagen als Show unter:
try{
date2 = dateFormat.parse(textBox.getText());
}catch(ParseException e){
date2 = null; // For Null;
// date2 = new Date(); For Current Date
// date2 = new Date(0); For Default Date
}
Es ist eine schlechte Idee, was so zu machen (das heißt machen Nullpointerexceptions). – VadymVL
'date2 =" "' funktioniert nicht, weil 'date2' ein' Date' und kein 'String' ist. Sie können einer Variablen, die keine "Zeichenkette" ist, keine "Zeichenkette" zuweisen. Außerdem ist 'date2.equals (" ")' immer 'false'. – Jesper
was meinst du mit * initialisieren einer java.util.Date Variable auf leer *? – Blip