Java:检查日期选择器是不是有值错误
Posted
技术标签:
【中文标题】Java:检查日期选择器是不是有值错误【英文标题】:Java: check if datepicker has value errorJava:检查日期选择器是否有值错误 【发布时间】:2017-05-03 18:08:13 【问题描述】:我有一个
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
);
如何正确检查值是否为空?
【问题讨论】:
【参考方案1】:if (date.getValue().equals(null) ...
如果该值确实是null
,您将得到NullPointerException
异常。所以,你最好这样写:
if (date.getValue() == null) ...
请记住,如果您使用equals
,您应该确保表达式的左侧部分(调用此方法的实例)永远不会呈现null
(如常量、String
文字、枚举做)。
此外,为了简洁,您可以随意将匿名类替换为 lambda:
btn.setOnAction(event -> ... );
此外,如果当前是null
(例如LocalDate.now()
),还有一种很好的单行方式来设置默认值:
datePicker.setValue(Optional.ofNullable(datePicker.getValue()).orElse(LocalDate.now()));
【讨论】:
【参考方案2】:您不能在 null
引用上调用方法。如您所见,这将产生NullPointerException
。相反,您应该使用==
运算符来检查引用是否[不是] null
:
if (date.getValue() == null)
// Here --------^
【讨论】:
【参考方案3】:检查是否为空
if (datePicker.getValue() == null)
//...
【讨论】:
以上是关于Java:检查日期选择器是不是有值错误的主要内容,如果未能解决你的问题,请参考以下文章