class X extends Map[String, String] {
def x(): X = { X() } // can't be compiled
}
不能編譯,錯誤的是:爲什麼不能編譯這個簡單的scala示例?
<console>:6: error: not found: value X
def x(): X = { X() } // can't be compiled
爲什麼X沒有發現?我看不出如何糾正它。
UPDATE:
我現在知道原因。我想要做的是創建一個延伸HashMap
的類,因爲Map()
將返回HashMap
的實例,所以我認爲我可以擴展Map
。現在,正確的代碼應該是:
import scala.collection.immutable.HashMap
class X extends HashMap[String, String] {
def x(): X = { new X() }
}
Kevin Wright對收集的延伸有非常好的回答。考慮創建另一個SO問題,僅僅關注那個(擴展/創建Scala 2.8集合)特別是「解除」它的問題。 – 2011-03-04 18:47:21
@pst,很好的建議,但現在,我太陌生了,我甚至不知道如何提出這個問題。 – Freewind 2011-03-06 07:47:02