Как работает метод add для List <E>типа val в kotlin - PullRequest
0 голосов
/ 03 мая 2018

У меня есть переменная типа

val itemList:List<String> = ArrayList()
itemList.add("One")
itemList.add("Two")

Как мне добиться этого в kotlin

Ответы [ 3 ]

0 голосов
/ 03 мая 2018

Попробуйте этот код ..

class UserActivity : AppCompatActivity() {
val itemList= ArrayList<String>()
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    itemList.add("One")
    itemList.add("Two")
}

}

0 голосов
/ 03 января 2019

Несколько вариантов:

val itemList: List<String> = arrayListOf().apply {
    add("One")
    add("Two")
}
// no need for .add method anymore!

Другой вариант:

val itemList: MutableList<String> = mutableListOf()
// or
val itemList = mutableListOf<String>()

// now you have `.add()` function

Обычно вы предпочитаете немодифицируемые списки вместо модифицируемых списков. Например, в Java вы можете использовать Collections.unmodifiableList и получить исключение времени выполнения, если попытаетесь внести изменение. С Kotlin вы можете сделать это во время компиляции.

0 голосов
/ 03 мая 2018

Не

val itemList:List<String> = ArrayList()

У

 val itemList:MutableList<String> = ArrayList()

Вы должны использовать MutableList.

interface MutableList<E> : List<E>, MutableCollection<E> (source)

Общий упорядоченный набор элементов, поддерживающий добавление и удаление элементов.

DEMO

 val itemList:MutableList<String> = ArrayList()
    itemList.add("One")
    itemList.add("Two")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...