val mutableList1: MutableList<TeamInvitationData?>?
val mutableList2: MutableList<TeamInvitationData?>?
addAllメソッドを使用してnull可能な可変リストをマージできますが、ここではコンパイル時エラーが発生します。
例:
val map1 = listOne?.map { TeamInvitationData(it) }
val map2 = listTwo?.map { TeamInvitationData(it) }
map1.addAll(map2)
タイプインターフェイスが失敗しました。タイプ引数を明示的に指定してみてください。
ここで何らかの方法で、この2つの配列をマージできます。
ここにいくつかの解決策があります。
すべての要素をmutableList1
に追加する必要がある場合:
val mutableList1: MutableList<Any?>? = ...
val mutableList2: MutableList<Any?>? = ...
mutableList1?.let { list1 -> mutableList2?.let(list1::addAll) }
結果として新しいnull可能リストが必要な場合:
val mutableList1: MutableList<Any?>? = ...
val mutableList2: MutableList<Any?>? = ...
val list3: List<Any?>? = mutableList1?.let { list1 ->
mutableList2?.let { list2 -> list1 + list2 }
}
結果として新しいnull可能な可変リストが必要な場合:
val mutableList1: MutableList<Any?>? = ...
val mutableList2: MutableList<Any?>? = ...
val list3: MutableList<Any?>? = mutableList1
?.let { list1 -> mutableList2?.let { list2 -> list1 + list2 } }
?.toMutableList()
結果として新しいnull以外のリストが必要な場合:
val mutableList1: MutableList<Any?>? = ...
val mutableList2: MutableList<Any?>? = ...
val list3: List<Any?> = mutableList1.orEmpty() + mutableList2.orEmpty()
全体が一貫していないスニペットに基づいて、実際に達成したかったことについていくつか推測しました。
_val mutableList1: MutableList<String?>? = ...
val mutableList2: MutableList<String?>? = ...
val mapped1 = mutableList1?.mapTo(ArrayList()) { TeamInvitationData(it) }
val mapped2 = mutableList2?.mapTo(ArrayList()) { TeamInvitationData(it) }
mapped1?.addAll(mapped2.orEmpty())
_
注意すべき重要な点は、map()
は入力リストのタイプに関係なく不変のリストを返すということです。変更可能なリストを取得するには、mapTo(destination) { ... }
を使用する必要があります。それが修正されたら、最後の行に示すようにaddAll()
を使用できます。