scala 2.12特征中丢失的注释信息

时间:2016-09-11 04:42:46

标签: scala javafx-8 scala-2.12

刚刚将scala 2.11 + JavaFX项目更新为2.12.0-RC1,代码集中使用java @FXML注释,例如。

trait MainController {
  @FXML def onRun(event: ActionEvent) {
    val script = currentEngine.executeScript("editor.getValue()").toString
    runScript(script)
  }
}

<MenuItem mnemonicParsing="false" onAction="#onRun" text="Run">
   <accelerator>
        <KeyCodeCombination alt="UP" code="R" control="UP" meta="UP" shift="UP" shortcut="DOWN"/>
   </accelerator>
</MenuItem>

在运行时,它会在执行FXMLLoader.load时抛出错误:

javafx.fxml.LoadException: Error resolving onAction='#onRun', either the event handler is not in the Namespace or there is an error in the script.

似乎编译期间@FXML注释信息已丢失。我听说在2.12中所有特征都被编译为接口,但这种变化是如何导致问题的呢?有没有解决方法?

1 个答案:

答案 0 :(得分:0)

虽然原因尚不清楚,但scala-2.12.0-RC2已解决了这个问题。谢谢你,Scala团队。