我注意到scala.xml.Atom
的類型參數爲A
,儘管它的所有子類都擴展爲Atom[String]
,並且文檔中提到「類Atom爲文本提供了一個XML節點(PCDATA)」。爲什麼scala.xml.Atom類型參數化?
是否有合法的用例來實例化類型參數不是字符串的Atom?
更具體地說,我對使用Scala XML文字來定義一種很好的DSL來定義基於內存樹的文檔結構感興趣,其中許多節點將是現有的Scala類。使用<document>{new JButton("Hi")}</document>
並訪問Atom[JButton]
中的非文本數據將會非常好,無需爲每個現有類定義XML序列化方案。
這是一個合法的用例,還是我濫用Scala的XML庫的當前實現?
謝謝!聽起來就像他們只是將它作爲一個通用的縮寫,以便在toString時省略toString調用更方便。雖然它沒有解釋爲什麼他們持有對初始對象的引用,而不是緩存到toString,但無論如何,這可能不是我應該依賴的行爲。 – Mike 2011-03-01 19:03:06