我正在关注有关内容提供者的教程,并且在特定代码中,他们使用一种bulkInsert
方法插入了一些数据。他们还使用 Vector 变量 ( cVVector
) 来存储所有ContentValues
.
提到的代码:
if (cVVector.size() > 0) {
ContentValues[] cvArray = new ContentValues[cVVector.size()];
cVVector.toArray(cvArray);
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, cvArray);
}
然后,我尝试通过强制转换为 来减少代码cVVector.toArray()
,ContentValues[]
但出现错误。
我编辑的代码:
if (cVVector.size() > 0) {
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, (ContentValues[]) cVVector.toArray());
}
我得到的错误:
FATAL EXCEPTION: AsyncTask #1
Process: com.example.thiago.sunshine, PID: 9848
java.lang.RuntimeException: An error occured while executing doInBackground()
...
Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to android.content.ContentValues[]
最后,我的问题是:为什么我不能在 anObject[]
和 a之间进行转换ContentValues[]
?
Obs.: 英文不是我的母语,如有错误请见谅。