Java:检查datepicker是否有值错误

时间:2016-12-18 15:31:03

标签: java javafx datepicker null

我有一个

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
         }
     }
   });

如何正确检查该值是否为空?

3 个答案:

答案 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