在导航控制器中使用安全参数传递数据后,如何将 Array<(out) Event!> 与 ArrayList<Event> 相互转换?

how to convert Array<(out) Event!> to and from ArrayList<Event> after passing data using safe args in Navigation Controller?

我正在尝试使用安全参数将 ArrayList 数据从一个片段传递到另一个片段,这是参数

<argument
        android:name="upcomingEvents"
        app:argType="com.x.Models.Event[]" />

但是当我想使用安全参数传递数据时,出现了这个错误

据说

type mismatch.

required: Array<(out) Event!>

Found: ArrayList

如何将ArrayList<Event>转换为Array<(out) Event!>

反之亦然,如何将Array<(out) Event!>转换为ArrayList<Event>

Kotlin 为这两个操作内置了方法,即 toTypedArray() and asList():

val upcomingEvents = currentUserData!!.upcomingEvents
val array = upcomingEvents.toTypedArray()

// On the other side
val array = ...
val list = array.asList()