这个重复的ContentValues实例是多余的吗?

时间:2012-08-06 15:54:30

标签: java android android-contentprovider

this NotePadProvider sample code中,我注意到ContentValues参数重复,即使它不是空的:

ContentValues values;
if (initialValues != null) {
    values = new ContentValues(initialValues);
} else {
    values = new ContentValues();
}

从表面上看,这看起来多余。看起来效率更高:

ContentValues values;
if (initialValues != null) {
    values = initialValues;
} else {
    values = new ContentValues();
}

但这不是样本的作者选择做的,我的问题是为什么?

1 个答案:

答案 0 :(得分:4)

它们并不等同。原始代码创建'initialValues'的副本,然后该方法继续修改​​变量value中的新实例。这样,通过此方法修改了提供给ContentValues方法的insert实例

您的版本会修改原始对象,这可能会在程序的其他区域产生不必要的副作用。