0
私は "タイプの条件分岐結果は...何のimplicity castですか?"このようなことをしようとすると警告します。Kotlin警告:タイプの条件分岐結果は、暗黙のキャストany?
objects?.forEach {
val gson = Gson()
val chatObject = if(it.type == CHAT_TEXT_TYPE) gson.fromJson(it.value, ChatText::class.java) //WARNING
else gson.fromJson(it.value, ChatProduct::class.java) //WARNING
//TEST
if(chatObject is ChatText) Log.e("ChatText: It works!", chatObject.text)
if(chatObject is ChatProduct) Log.e("ChatProduct: It works!", chatObject.name)
}
最後に動作します。私のコードに何か問題はありますか?この警告を削除する可能性はありますか?
EDIT - 警告は、あなたの枝に異なる種類を返されたことを言っている、とあなたが代入している変数はに推測されること
val chatObject = when (it.type)
{
CHAT_TEXT_TYPE -> gson.fromJson(it.value, ChatText::class.java)
CHAT_PRODUCT_TYPE -> gson.fromJson(it.value, ChatProduct::class.java)
else -> gson.fromJson(it.value, Any::class.java)
}
が、私は警告を推測
あなたはコメントで警告を抑制するか、警告を削除するにはAnyのキャストを処理するように指示します。三番目のif。いつ使用するか検討してください。 –