После долгих исследований я наконец нашел способ сделать это.
Я объясню, как я это сделал. Это может помочь всем, кто страдает от этой проблемы,
class ThreadSafeList<E> private constructor(private val data: MutableList<E>): MutableList<E> by data
{
// default constructor, when no elements are passed
constructor(): this(mutableListOf())
companion object {
// constructor for a list to use its elements for the purpose
operator fun <E> invoke(elements: List<E>): ThreadSafeList<E>
{
return ThreadSafeList(elements.toMutableList())
}
}
}
fun main()
{
// this is how you call it
val list = listOf("Hello", "World", "!")
val threadSafeList = threadSafeListOf(list)
}
Вот что я сделал, может быть, взломать, но это работает как шарм.Вот почему я люблю kotlin.
Вы можете создать объект, как обычно, не нужно добавлять при вызове при создании объекта, так как это автоматически выполняется компилятором kotlin при передачесписок к нему.