我总是在很多代码中看到这一点:
String s;
if (s == null || s.isEmpty()) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
但这还不够
String s;
if (s.isEmpty()) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
我很好奇,尤其是当我检查 JavaFX TextField 是否为空时。
一般来说,
s.isEmpty()
Run Code Online (Sandbox Code Playgroud)
检查是否s为空字符串,即其中没有字符的字符串。如果s为 null,则尝试调用s.isEmpty()(或尝试调用 上的任何其他方法s)将引发空指针异常。
(请注意,询问“该方法是否检查空值”实际上没有意义isEmpty():没有办法s.isEmpty()检查是否为空:如果为空,则无法调用该方法。)ss
在您引用的特定情况下:检查文本字段是否为空,请注意,TextField.getText()除非您首先明确将其设置为 null(使用 ),否则不会返回 null textField.setText(null)。换句话说,默认值是空字符串,并且当用户键入时调用的“内部”方法不会将文本属性设置为 null。由于您的文本字段应仅限于定义它的直接类(或创建它的 FXML 文件的控制器),因此您可以控制对其setText(...)方法的调用,然后可以保证
TextField textField = ... ;
if (textField.getText() == null || textField.getText().isEmpty()) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
相当于
TextField textField = ... ;
if (textField.getText().isEmpty()) {
// ...
}
Run Code Online (Sandbox Code Playgroud)
通过保证这textField.getText() == null总是错误的。
| 归档时间: |
|
| 查看次数: |
4814 次 |
| 最近记录: |