Ist es möglich, in Scala Methodenreferenzen im Java 8-Stil zu verwenden?

Ich entwickle eine JavaFX8-Anwendung in Scala, konnte jedoch nicht herausfinden, wie eine Methodenreferenz an einen Ereignishandler übergeben wird. Zur Verdeutlichung verwende ich keine ScalaFX-Bibliothek, sondern erstelle meine Anwendung direkt über JavaFX.

Hier ist das zugehörige Code-Snippet.

InputController.java (Ich habe diese Testklasse in Java geschrieben, um das Problem zu isolieren und nur eine Methodenreferenz zu verwenden.)

public class InputController {
    public void handleFileSelection(ActionEvent actionEvent){
        //event handling code
    }

    public InputController() {
        //init controller
    }
}

Dies funktioniert (Java)

InputController inputController = new InputController();
fileButton.setOnAction(inputController::handleFileSelection);

Dies funktioniert nicht (Scala)

val inputController = new InputController
fileButton.setOnAction(inputController::handleFileSelection)

Hier ist die Fehlermeldung des Compilers (Scala 2.11.6).

Error:(125, 45) missing arguments for method handleFileSelection in class Main;
follow this method with '_' if you want to treat it as a partially applied function
    fileButton.setOnAction(inputController::handleFileSelection)
                                            ^

Wenn ich stattdessen Scala 2.12.0-M2 verwende, wird eine andere Fehlermeldung angezeigt.

Error:(125, 45) missing argument list for method handleFileSelection in class Main
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `handleFileSelection _` or `handleFileSelection(_)` instead of `handleFileSelection`.
    fileButton.setOnAction(inputController::handleFileSelection)
                                            ^

Gibt es eine native Methode, mit der Scala die in Java 8 eingeführten Methodenreferenzen nutzen kann? Ich kenne den impliziten Konvertierungsansatz für die Verwendung eines Lambda-Ausdrucks, möchte aber wissen, ob es eine Möglichkeit gibt, eine Java 8-ähnliche Methodenreferenz zu verwenden, ohne die Lambda-Dekleration verwenden zu müssen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage