Kotlin - лямбда для возврата списка переменных-членов - PullRequest
0 голосов
/ 28 июня 2018

Предисловие: Это то, что я не уверен, что Котлин может сделать, но я чувствую, что это должно быть в состоянии сделать.

Вопрос: Можно ли вернуть список, составленный из переменных-членов других списков, без создания отдельной функции, через лямбду, отображение или иным образом?

У меня есть внутренний класс Kotlin, в котором есть строка имени, представляющая физический COM-порт. У меня есть подпрограмма, которая будет запрашивать доступные COM-порты на устройстве и возвращать список доступных строк имен портов для выбора.

inner class ComPort() {

val portName: String = "something"

... }

...


ComPortSelectBox.setItems(*getComPortNames())

...

private fun getComPortNames(): Array<String> {
  val names: ArrayList<String> = ArrayList()

  for(comPort in availableComPorts)
    { names + comPort.portName }

  return names.toTypedArray()
}

Поскольку getComPortNames() используется только в одном месте, я бы хотел упростить этот вызов до значения, эквивалентного getComPortNames, которое я могу использовать встроенным в .setItems(...). Возможно ли это в Котлине? Если да, то как бы это сделать?

1 Ответ

0 голосов
/ 28 июня 2018

Я не уверен, что на самом деле означает availableComPorts, но похоже, что Iterable. Если так, то вы можете сделать что-то вроде:

ComPortSelectBox.setItems(*availableComPorts.map(ComPort::portName).toTypedArray())

UPD. Вы не упомянули, какую Java вы используете. Я предположил, что это Java 8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...