在初始化java.util.Date变量为空时,我需要你的帮助.当我正在运行页面时,如果我没有选择任何日期,它会显示nullpointerexception.
代码是:
private java.util.Date date2;
Run Code Online (Sandbox Code Playgroud)
我试图将该变量设为空,但它不起作用>
private java.util.Date date2;
if (date2==null || date2.equals(""))
date2="";
Run Code Online (Sandbox Code Playgroud)
但是,随着初始化:
private java.util.Date date2= new java.util.Date(0,0,0);
Run Code Online (Sandbox Code Playgroud)
上面的代码将给出一个我不想要它的默认值.
Bli*_*lip 14
java.util.Date的实例存储日期.那么如何在其中存储任何内容或将其清空?它只能存储对实例的引用java.util.Date.如果你这样做null意味着它没有引用任何实例java.util.Date.
您已尝试date2="";通过此语句执行的操作,并希望将实例引用String到要存储的变量中java.util.Date.这是不可能的,因为Java是强类型语言.
编辑
看到发布到LastFreeNickname答案的评论后
我有一个表单,文本框中的日期文本框应该默认为空白,但是如果用户没有输入任何内容,在提交数据时,它应该接受它
我建议您检查文本框是否为空.如果它是空的,那么您可以将默认日期存储在变量或当前日期中,也可以null按如下所示进行分配:
if(textBox.getText() == null || textBox.getText().equals(""){
date2 = null; // For Null;
// date2 = new Date(); For Current Date
// date2 = new Date(0); For Default Date
}
Run Code Online (Sandbox Code Playgroud)
此外,我可以假设,因为您要求用户在a中输入日期TextBox,您使用a DateFormat来解析输入的文本TextBox.如果是这种情况,你可以简单地调用,如果写入日期的格式不正确或是空字符串dateFormat.parse(),则抛出a ParseException.在catch块中,您可以将上述语句如下所示:
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
}
Run Code Online (Sandbox Code Playgroud)
IMO,你不能创建一个空的Date(java.util).您可以Date使用null值创建对象,并可以进行空检查.
Date date = new Date(); // Today's date and current time
Date date2 = new Date(0); // Default date and time
Date date3 = null; //Date object with null as value.
if(null != date3) {
// do your work.
}
Run Code Online (Sandbox Code Playgroud)