回答

1

你應該使用java序列化(我推薦在複雜情況下使用Externalizable方法)。你可以在googling "java serialization tutorial"找到很多教程。

如果你想留在斯卡拉,你應該看看SBinary它使用可組合類型的類。這個項目看起來很舊而且沒有維護,但是和Scala 2.9.2一樣魅力十足。自述文件中有一個教程鏈接,我正在編寫另一個鏈接。

+0

我不知道人們可以使用Java序列化Scala對象 –

+0

唯一的區別在於Scala可序列化是一個註釋。看看這個問題:http://stackoverflow.com/questions/3442171/how-do-i-use-a-serializable-scala-object – paradigmatic

+0

請注意,Java序列化不處理使用泛型的不可變列表[A] 。您必須改用Array [A]。我不確定其他容器。外部化可能不是案例類的方式(赦免雙關語)外部化需要一個沒有參數的構造函數,以便它能夠工作。對於那些試圖堅持Scala的通用慣例來堅持不變對象的人來說,這可能並不理想。 –

1

不確定您的要求,但值得一看Google的Protocol Buffers和Apache Thrift。兩者都提供了有效的序列化機制。

有一個協議緩衝器Scala編譯器ScalaBuff

+0

哇!真棒看到我的項目被提及爲可能的解決方案! :)我應該補充一點,我仍然在研究一些更高級的部分,它可能不是那麼容易設置,因爲它應該是(我必須做一個簡單的示例項目),但它仍然應該漂亮好(protobuf協議太棒了!)。如果有人有任何問題,只需在GitHub頁面上打開一個問題,我會盡快回復!有關使用示例(使用Android),請查看我的[SenseGrid項目](https://github.com/SandroGrzicic/sensegrid)。 –