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)}
Tại sao nó không thể vượt qua đối số s
vào áp dụng phương pháp ListBuffer [Chuỗi] đó làLàm thế nào để chuyển đối số với dấu sao đến phương thức tiếp theo?
def apply[A](elems: A*): CC[A] = { ... }
(Phương pháp apply
từ GenericCompanion.scala
)
Mã ListBuffer[String]("foo", "bar")
làm việc. Nhưng có vẻ như tôi không thể vượt qua danh sách đối số của các chuỗi từ s
cũng là String*
.
Tôi có trường hợp tương tự và giải pháp giải nén bạn giải quyết vấn đề, tuy nhiên chuyển đổi ngầm không "kick in" (vì vậy tôi nhận được lỗi không khớp loại). Có thể ép buộc chuyển đổi ngầm định bằng tính năng giải nén không? –