我在http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/JAVA/MTRandom.java上使用Mersenne-Twister實現作爲默認java.util.Random
類的直接替換。但是,四個字段(一個int,一個布爾值和兩個字節[])被標記爲transient
。這意味着我不能在不實現自定義功能的情況下序列化此類的對象。這個類爲什麼不是可串行化的?
問題是,是否有任何理由將這些字段標記爲瞬態?是否有任何代碼保存從文件讀入對象時沒有任何意義的信息?我從字段中刪除了transient
修飾符,它似乎工作正常,但我沒有對它進行過深入的測試,因此可能會出現這種情況:
個人而言,我不明白爲什麼,因爲所有在課堂上做的都是算術。
它不保持「二進制兼容」。 Java序列化的確有點像這樣工作。 – 2009-12-17 12:37:12