Входной параметр лямбда-функции в Scala - PullRequest
0 голосов
/ 10 июня 2018

Я использую addChangeListener из Java Swing API в моей программе Scala.Компилятор ScalaFiddle указывает на ошибку в следующем коде:

spinner_1.addChangeListener(e => {
              ...
})

ошибка: отсутствует тип параметра spinner_1.addChangeListener (e => {

Я пытался написатьe : ChangeListener, но это не решило эту проблему. Я не нашел ничего полезного в документации Scala.

Как с этим справиться?

1 Ответ

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

Работает в Scala 2.12 .Но если вам нужно использовать более старую версию, такую ​​как 2.11, вы можете использовать неявное преобразование.Вот пример:

import javax.swing.JTabbedPane
import javax.swing.event.{ChangeEvent, ChangeListener}

implicit def convertToChangeListener(f: ChangeEvent => Unit): ChangeListener =
  new ChangeListener {
    override def stateChanged(e: ChangeEvent): Unit = f.apply(e)
  }

val listener: ChangeListener = (e: ChangeEvent)  => ...

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