I'm following a tutorial about content providers and, in a specific code, they inserted some data using a bulkInsert
method. They also used a Vector variable (cVVector
) to store all the ContentValues
.
Code that was mentioned:
if (cVVector.size() > 0) {
ContentValues[] cvArray = new ContentValues[cVVector.size()];
cVVector.toArray(cvArray);
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, cvArray);
}
Then, I tried to reduce the code by casting cVVector.toArray()
to ContentValues[]
, but I'm getting an error.
Code edited by me:
if (cVVector.size() > 0) {
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, (ContentValues[]) cVVector.toArray());
}
Error that I'm getting:
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[]
Finally, my question is: Why I can't do a casting between an Object[]
and a ContentValues[]
?
Obs.: English is not my mother tongue, please excuse any errors.