簡體   English   中英

JavaFX-如何避免將null值從任何值加載到TextField?

[英]JavaFX-how to avoid loading null values from whatever to TextField?

有一個輸入驗證方法,其中包含:一些驗證步驟,僅在編輯用例為空或包含一些輸入但在保存用例時工作正常時,此異常才會發生。

@FXML private TextField txt_field;

Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
.
.
.
Caused by: java.lang.NullPointerException

將null加載到此textField並嘗試獲取length()時會發生這種情況:

txt_field.setText(null); //value is null as loaded from DB.
if(txt_field.getText().length() > 15)    //the line of exception.

因此,為避免這種情況,加載空值時應該怎么辦?

假設您無法檢查從數據庫出來的數據庫是否為空,則可以執行以下操作

var myText = txt_field.getText();
if(myText != null && myText.length > 15) {
    // do stuff
}

如果要將文本直接設置為不為null的值,則可以嘗試:

txt_field.setText(dbValue == null? "" : dbValue);

由於您是使用java-8標記的,因此您可以嘗試使用Optionals:

Optional dbValue = Optional.ofNullable(getDBValue());   // get the value from the DB
txt_field.setText(dbValue.orElse("");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM