請耐心等待,我對Scala仍然很不在意。我有以下代碼:java.util.Iterator到Scala列表?
private lazy val keys : List[String] = obj.getKeys().asScala.toList
obj.getKeys根據文檔返回java.util.Iterator的
調用asScala,經由JavaConverers(其被導入)..
java.util.Iterator <==> scala.collection.Iterator
scala.collection.Iterator的定義
def toList : List[A]
因此,基於這個我相信這應該工作,howev呃這裏是編譯錯誤。
[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
我理解的類型參數或Java迭代器是一個Java字符串,我想創建斯卡拉字符串列表,但是(也許天真地)認爲會有一個隱式轉換。
非常感謝您的回答!好像你和Matthew Farwell在很大程度上一致。我做了你的建議,obj.getKeys()。asInstanceOf [java.util.Iterator [String]]。asScala.toList,似乎工作,我沒有得到編譯警告。 – rshepherd