Xin vui lòng chịu với tôi, tôi vẫn còn khá noobish với Scala. Tôi có đoạn mã sau:java.util.Iterator đến danh sách Scala?
private lazy val keys : List[String] = obj.getKeys().asScala.toList
obj.getKeys trả về một java.util.Iterator
Calling asScala, qua JavaConverers (được nhập khẩu) theo các tài liệu ..
java.util.Iterator <==> scala.collection.Iterator
scala.collection.Iterator định nghĩa
def toList : List[A]
Vì vậy, dựa trên điều này tôi tin rằng điều này sẽ hoạt động, howev er ở đây là lỗi biên dịch.
[scalac] <file>.scala:11: error: type mismatch;
[scalac] found : List[?0] where type ?0
[scalac] required: List[String]
[scalac] private lazy val keys : List[String] = obj.getKeys().asScala.toList
[scalac] one error found
Tôi hiểu tham số kiểu hoặc Iterator java là một chuỗi Java, và tôi đang cố gắng để tạo ra một danh sách các chuỗi Scala, nhưng (có lẽ ngây thơ) nghĩ rằng sẽ có một sự chuyển đổi ngầm.
Cảm ơn rất nhiều vì câu trả lời! có vẻ như bạn và Matthew Farwell đồng ý cho hầu hết các phần. Tôi đã làm những gì bạn đề nghị, obj.getKeys(). AsInstanceOf [java.util.Iterator [String]]. AsScala.toList và dường như làm việc, và tôi đã không nhận được một cảnh báo biên dịch. – rshepherd