我有两个数据采集器,d1和d2。 有一个过滤功能,只能过滤d1,仅过滤d2或同时过滤d1和d2。
@FXML
DatePicker d1;
@FXML
DatePicker d2;
public void filter(){
SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd");
String st = ft.format(ft.parse(this.d1.getValue().toString())));
String en = ft.format(ft.parse(this.d2.getValue().toString())));
if(st == null && en != null)
filterbySt(d1);
else
filterbyEn(d2);
}
如果未设置d1或d2,我会收到空指针异常
如何测试是否尚未设置日期选择器?
答案 0 :(得分:2)
如果未设置d1 / d2 ae,d1.getValue()
将返回null
,使用d1.getValue().toString()
会抛出NullPointerException
。
在尝试从datepicker中获取值之前,只需输入null check
。如果datePicker.getValue()
为null
,则表示尚未设置 datepicker
...
String st, en =null;
if(d1.getValue() != null){
st = ft.format(ft.parse(this.d1.getValue().toString())));
}
if(d2.getValue() != null){
en = ft.format(ft.parse(this.d2.getValue().toString())));
}
...
答案 1 :(得分:0)
我也试过像这样
捕获nullPointer异常 //catching the null pointer exception and moving on.
String st = null, en = null;
try{
st = ft.format(ft.parse(this.d1.getValue().toString())));
}catch(NullPointerException ex) {}
try{
en = ft.format(ft.parse(this.d2.getValue().toString())));
}catch(NullPointerException ex){}