isEmpty()方法是否检查空值?

时间:2017-05-15 19:02:25

标签: java javafx

我总是在很多代码中看到这一点:

String s;
if (s == null || s.isEmpty()) {
//do something
}

但还不够

String s;
if (s.isEmpty()) {
//do something
}

特别是当我检查JavaFX TextField空白时,我很好奇。

1 个答案:

答案 0 :(得分:3)

一般来说,

s.isEmpty()

checks if s is an empty string,即一个没有字符的字符串。如果s为null,则尝试调用s.isEmpty()(或尝试调用s上的任何其他方法)将抛出空指针异常。

(请注意,询问&#34是否真的有意义; isEmpty()方法是否检查空值":s.isEmpty()没有办法可以可能检查s是否为空:如果s为空,则无法调用该方法。)

在特定情况下,您引用:检查文本字段是否空白,请注意TextField.getText()不会返回null,除非您先将其显式设置为null(使用textField.setText(null))。换句话说,默认值是一个空字符串,并且&#34; internal&#34;不会将text属性设置为null。用户键入时调用的方法。由于您的文本字段应限于定义它的直接类(或创建它的FXML文件的控制器),您可以控制对其setText(...)方法的调用,然后您可以保证< / p>

TextField textField = ... ;

if (textField.getText() == null || textField.getText().isEmpty()) {
    // ...
}

相当于

TextField textField = ... ;

if (textField.getText().isEmpty()) {
    // ...
}

保证textField.getText() == null始终为假。