我有一个
DatePicker date = new DatePicker();
date.setValue(LocalDate.now());
该字段仍可手动编辑,因此您只需删除初始设定值即可。
我有一个按钮,我想检查DatePicker
值是否为空。但是当我if(date.getValue().equals(null)
时,我会得到一个java.lang.NullPointerException
:
Button btn = new Button();
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent evt) {
if(date.getValue().equals(null) {
// do something
}
}
});
如何正确检查该值是否为空?
答案 0 :(得分:1)
使用
检查空值if (datePicker.getValue() == null) {
//...
}
答案 1 :(得分:1)
if (date.getValue().equals(null) { ... }
如果该值实际为null
,则会出现NullPointerException
异常。所以,你最好写得像:
if (date.getValue() == null) { ... }
请记住,如果使用equals
,则应确保表达式的左侧部分(调用此方法的实例)从不显示null
(如常量String
1}}文字,枚举确实。)
此外,您可以使用lambda替换匿名类以获得简洁:
btn.setOnAction(event -> { ... });
此外,如果当前为null
(例如LocalDate.now()
,则有一种很好的单行方式来设置默认值:
datePicker.setValue(Optional.ofNullable(datePicker.getValue()).orElse(LocalDate.now()));
答案 2 :(得分:1)
您无法在null
引用上调用方法。如您所见,这会产生NullPointerException
。相反,您应该使用==
运算符来检查引用是否[{1}}:
null