Existe-t-il un moyen de faire en sorte que cela fonctionne? (Scala 2.8.1)Conversion implicite d'un conteneur générique pour un paramètre implicite dans Scala
class A
def f(implicit a: A) = 0
class Vendor[T](val v: T)
implicit val vendor = new Vendor(new A)
implicit def vendorToVal[T](implicit v: Vendor[T]) = v.v
f
L'erreur est: 'divergente extension implicite de type A à partir de la méthode vendorToVal'
Ceci est lié à lever 2,2 injection de dépendance, le code réel ressemble à ceci:
class UserStore(implicit db: DbAccess)
object DependencyFactory extends Factory {
implicit val db = new FactoryMaker[DbAccess](Model) {}
import db._ // implicit conversion would allow to remove this import
implicit val userStore = new FactoryMaker[UserStore](new UserStore) {}
}
cette question est liée à: Is there a way to implicitly convert an implicit parameter in Scala?
Ma solution finale au problème Lift DI est d'utiliser les importations au lieu des arguments implicites des dépendances. Détails: http://scala-notes.blogspot.com/2011/03/dependency-injection-with-lift.html –