(Kotlin) Как инициализировать HashMap, не затрагивая данные

#android #kotlin #hashmap

#Android #kotlin #hashmap

Вопрос:

Если вы используете hashmap, возникает ошибка из-за проблемы с инициализацией. Как я должен выполнить инициализацию?

 var requestHashMap:HashMap<String, RequestBody>
        
        requestHashMap["sound"] = file.asRequestBody("multipart/form-data".toMediaTypeOrNull())
        requestHashMap["content"] = content.toRequestBody("multipart/form-data".toMediaTypeOrNull())
        requestHashMap["img"] = getImageFile!!.asRequestBody("multipart/form-data".toMediaTypeOrNull())
  

Ответ №1:

вы можете исправить свой код, только изменив эту строку:

 var requestHashMap: HashMap<String, RequestBody> = hashMapOf()
  

или изменить весь ваш код на этот:

 var requestHashMap :HashMap<String, RequestBody> = hashMapOf(
        "sound" to file.asRequestBody("multipart/form-data".toMediaTypeOrNull()), 
        "content" to content.toRequestBody("multipart/form-data".toMediaTypeOrNull()), 
        "img" to getImageFile!!.asRequestBody("multipart/form-data".toMediaTypeOrNull()))
  

Ответ №2:

Вы должны создать свой HashMap после его объявления :

 var requestHashMap = hashMapOf<String, RequestBody>()

requestHashMap["sound"] = file.asRequestBody("multipart/form-data".toMediaTypeOrNull())
requestHashMap["content"] = content.toRequestBody("multipart/form-data".toMediaTypeOrNull())
requestHashMap["img"] = getImageFile!!.asRequestBody("multipart/form-data".toMediaTypeOrNull())
  

В вашем коде вы только что объявили переменную с именем requestHashMap типа HashMap

Для большего стиля кодирования kotlin :

 var requestHashMap = hashMapOf<String, RequestBody>(
    "sound" to file.asRequestBody("multipart/form-data".toMediaTypeOrNull()),
    "content" to content.toRequestBody("multipart/form-data".toMediaTypeOrNull()),
    "img" to getImageFile!!.asRequestBody("multipart/form-data".toMediaTypeOrNull())
)