Scala: "Kein Manifest für Typ T verfügbar"

Ich arbeite an einem Lift-Projekt mit gemischtem Scala- und Java-Code.

Auf der Java-Seite habe ich die folgenden relevanten Elemente:

interface IEntity

interface IDAO<T extends IEntity> {
    void persist(T t);
}

Auf der Scala-Seite habe ich Folgendes:

abstract class Binding[T <: IEntity] extends NgModel {
    def unbind: T
}

class BasicService[E <: IEntity](serviceName: String, dataAccessObject: IDAO[E]) {
      def render = renderIfNotAlreadyDefined(
        angular.module("myapp.services")
          .factory(serviceName,
            jsObjFactory()
              .jsonCall("persist", (binding: Binding[E]) => {  //<---COMPILATION ERROR
                  try {
                    dataAccessObject.persist(binding.unbind)
                    Empty
                   } catch {
                   case e: Exception => Failure(e.getMessage)
                   }
              })
          )
     )
}

Dieser Code wird nicht kompiliert. An der oben angegebenen Stelle erhalte ich folgende Fehlermeldung:

No Manifest available for Binding[E].

Es ist mir überhaupt nicht klar, warum dies geschieht, aber ich vermute, es hat etwas damit zu tun, dass es sich um einen verschachtelten Methodenaufruf handelt. Der Code wird einwandfrei kompiliert, wenn ich eine Member-Funktion mit Binding [E] als Parameter deklariere, zum Beispiel:

def someFunction(binding: Binding[E] = { // same code as above }

Warum passiert das und wie kann ich das umgehen?

Antworten auf die Frage(0)

Ihre Antwort auf die Frage