5
scala> class A (s: String*) { val l: ListBuffer[String] = ListBuffer[String](s) }
<console>:8: error: type mismatch;
found : String*
required: String
class A(s: String*) {val l: ListBuffer[String] = ListBuffer[String](s)}
nedenYıldızla argüman nasıl bir sonraki yönteme geçilir?
kod ListBuffer[String]("foo", "bar")
çalışır (GenericCompanion.scala
den Yöntem apply
)
def apply[A](elems: A*): CC[A] = { ... }
olan ListBuffer [dize] yapılır yönteme bağımsız değişken s
geçmek mümkün değildir. Ama ben String*
da s
dizeleri argüman listesi içinden geçemez gibi görünüyor.
Ben benzer bir durum vardı ve açmak çözüm sorunu çözdü, ancak örtük dönüştürme "tekme" (böylece tür uyumsuzluğu hatası alır) olmaz. Paket açma özelliği ile örtük dönüştürme zorlamak mümkün mü? –