注意kotlin變數非空的寫法

2021-10-21 19:40:46 字數 645 閱讀 2398

1,錯誤示例:

var mtoken: string= ""

mtoken = intent.getstringextra(constantvalue.fc_token)//這裡在某種情況下,可能會為null

錯誤原因:kotlin初始化值中,如果沒有加上問號,說明你宣告的是乙個非null的變數,即使初始化你給賦值了,如果在後面可能給賦值了乙個null,還是不被允許的,會crash。

另: intent.getstringextra()這個方法沒有給設定預設值的寫法,即 intent.getstringextra("***","***x")這種方法是不存在的

2,正確寫法:

//mtoken雖然初始化為空字串,但是可以為null

var mtoken: string?= ""

mtoken = intent.getstringextra(constantvalue.fc_token)//這裡在某種情況下,可能會為null

或者 var mtoken: string= ""

//如果這裡為null ,將賦值給mtoken空字串(明顯這種方法更好)

mtoken = intent.getstringextra(constantvalue.fc_token)?:""//這裡在某種情況下,可能會為null

validate的非空驗證

設計的有jsp頁面,資源檔案,還有struts config.xml中validate true validation.xml中的資訊 首先在jsp頁面有如下 xml font color red html errors bundle user property username html erro...

kotlin中的空指標檢查問題

android系統上崩潰率最高的異常型別就是空指標異常。我們需要知道的是 空指標是一種不受程式語言檢查的執行時異常,只能有程式設計師主動通過邏輯判斷來避免。舉個例子,對於一段簡單的呼叫引數的j a 我們要使 安全性更高,更穩妥的做法就是再呼叫引數的方法之前先進行乙個判空處理。如下 public vo...

注意C Vector 的判空

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,1...