Ergebnistyp einer impliziten Umwandlung muss spezifischer als AnyRef
def h(a: AnyRef*) = a.mkString(",")
h: (a: AnyRef*)String
Lassen und so
h("1","2")
res: String = 1,2
jedoch h(1,2)
error: the result type of an implicit conversion must be more specific than AnyRef
h(1,2)
^
error: the result type of an implicit conversion must be more specific than AnyRef
h(1,2)
^
Dies ist zumindest in Scala 2.11. 1 und 2.11.1. Fragen Sie nach einer Problemumgehung.
Das scala repl auf scala 2.10.X gibt eine viel aussagekräftige Antwort zurück: 'Fehler: Typenkonflikt; gefunden: Int (1) erforderlich: AnyRef Hinweis: eine implizite existiert von scala.Int => java.lang.Integer, aber Methoden geerbt von Object werden mehrdeutig gerendert. Dies soll ein implizites Bucket vermeiden, das scala.Int in AnyRef konvertieren würde. Sie können eine Typbezeichnung verwenden: 'x: java.lang.Integer'. h (1,2) ' –
Übrigens können Sie das Problem mit' val x: AnyRef = 42' reproduzieren –