代码之家  ›  专栏  ›  技术社区  ›  JarsOfJam-Scheduler

lambda函数在scala中的输入参数

  •  0
  • JarsOfJam-Scheduler  · 技术社区  · 6 年前

    我在用 addChangeListener 从我的Scala程序中的JavaSwing API。scalafiddle的编译器在以下代码中指示错误:

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

    错误:缺少参数类型 spinner_1.addChangeListener(e=>){

    我试着写 e : ChangeListener 但是没有解决这个问题。我在scala的文档中没有找到有用的东西。

    我该怎么处理?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Duelist    6 年前

    Scala 2.12

    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)