strName = json.optString("name").substring(0, json.optString("name").indexOf(" "));和strName = subName(json.optString("name"));private String subName( String gameName ){if ( ! gameName.isEmpty() ){String str[] = gameName.split(" ");String subNewName = str[0];return subNewName;}else{return null;}}在代碼執(zhí)行上有什么區(qū)別嗎?為什么在代碼中用第一種方法,app運(yùn)行有時(shí)候會(huì)出錯(cuò),有時(shí)候又不會(huì)?
2 回答

弒天下
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
strName = json.optString("name").substring(0, json.optString("name").indexOf(" "));這樣寫(xiě)是不安全的。
原因是json.optString("name")有可能因?yàn)榉N種原因返回null,或者其中不含空格導(dǎo)致json.optString("name").indexOf(" ")返回-1進(jìn)而導(dǎo)致substring方法出錯(cuò)。
總之,把這句話展開(kāi)成一個(gè)函數(shù),多加一些檢查,才能保持函數(shù)的可靠。
添加回答
舉報(bào)
0/150
提交
取消