在處理實體類的時候踏幻,Android Studio 提供了默認的getter/setter方法。
但是在使用的過程中暇仲,調(diào)用getter比較容易出現(xiàn)Null的情況,容易導致NullPointerException,從而導致程序直接崩潰副渴。所以我們可以通過getter模板的修改奈附,如果為null的時候,我們重新生成一個對象進行返回煮剧。雖然此種解決方法理論上會造成內(nèi)存的增加斥滤,但是相對于更多的if判斷或程序奔潰讼载,目前來說還是能在接受的范圍內(nèi)。
通過在網(wǎng)上查找方案中跌,記錄了Getter生成代碼的模板。
首先我們新建一個實體類菇篡,在類里面寫一個簡單的屬性漩符,然后command+N調(diào)出Generate面板,選擇Getter驱还。
打開模板.png
然后點擊添加新模板
添加新模板.png
點擊OK嗜暴,然后在代碼生成的時候選擇我們新建的模板
選擇使用模板.png
然后生成的代碼就有了非空判斷了
非空判斷.png
下面是模板的代碼
#if($field.modifierStatic)
static ##
#end
$field.type ##
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project))))
#if ($field.boolean && $field.primitive)
#if ($StringUtil.startsWithIgnoreCase($name, 'is'))
#set($name = $StringUtil.decapitalize($name))
#else
is##
#end
#else
get##
#end
${name}() {
#if ($field.string)
return $field.name == null ? "" : $field.name;
#else
#if ($field.list)
if ($field.name == null) {
return new ArrayList<>();
}
return $field.name;
#else
return $field.name;
#end
#end
}