android变量要不要附空值,android-如何在使用Parcelable时序列化空值
我見(jiàn)過(guò)的大多數(shù)序列化代碼都使用兩個(gè)標(biāo)志來(lái)指示值的存在/不存在,或者在值前加上一個(gè)計(jì)數(shù)字段(例如,在編寫(xiě)數(shù)組時(shí)),如果該值不等于,則計(jì)數(shù)字段僅設(shè)置為零。 根本不存在。
檢查Android核心類的源代碼會(huì)發(fā)現(xiàn)以下代碼(來(lái)自Message類):
if (obj != null) {
try {
Parcelable p = (Parcelable)obj;
dest.writeInt(1);
dest.writeParcelable(p, flags);
} catch (ClassCastException e) {
throw new RuntimeException(
"Can't marshal non-Parcelable objects across processes.");
}
} else {
dest.writeInt(0);
}
或這個(gè)(來(lái)自Intent類):
if (mCategories != null) {
out.writeInt(mCategories.size());
for (String category : mCategories) {
out.writeString(category);
}
} else {
out.writeInt(0);
}
我的建議:在您的代碼中,如果“ zoom == null”和“ zoom == 0”之間沒(méi)有功能上的區(qū)別,那么我只需要將zoom聲明為原始變量(int而不是Integer),或者將其初始化為零 構(gòu)造函數(shù),并確保您永遠(yuǎn)不要將其設(shè)置為null(這樣就可以保證它永遠(yuǎn)不會(huì)為null,并且您不必在序列化/反序列化方法中添加特殊代碼來(lái)處理它)。
總結(jié)
以上是生活随笔為你收集整理的android变量要不要附空值,android-如何在使用Parcelable时序列化空值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 我的世界电脑版封面(我的世界封面图标)
- 下一篇: 计算机网络的含义是什么意思,互联网的基本