回答編集履歴

2

修正

2018/12/27 01:42

投稿

yukkuri
yukkuri

スコア624

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
-
43
+ あと、
44
44
 
45
45
  > セッションをDBに詰め込んでそれをデシリアライズしたときに問題が起きないかのチェック
46
46
 

1

追記

2018/12/27 01:42

投稿

yukkuri
yukkuri

スコア624

test CHANGED
@@ -7,3 +7,43 @@
7
7
 
8
8
 
9
9
  getSerialVersionUIDの実装にもより、ソースがないのでなんとも言えませんが、1に設定されていてそれをそのまま返す、とかだったら絶対に1になります。また、これはソースにもよるので、そのソース(serialVersionUIDをつけているクラス)もだすべきです。
10
+
11
+
12
+
13
+ # 追記
14
+
15
+
16
+
17
+ > serialVersionUIDは固定なので
18
+
19
+
20
+
21
+ 違います。[参考にしたサイト](http://www.ne.jp/asahi/hishidama/home/tech/java/serial.html#serialVersionUID)によると、
22
+
23
+
24
+
25
+ > この定数は、復元前後でクラスのバージョンが異なっていないかを識別する為のものらしい。
26
+
27
+ なので、クラス内のフィールドやメソッド(の名前や型)に変更があった場合は 計算し直すのが筋だと思われる。
28
+
29
+ が、「変更されない」あるいは「実際には受け渡しは行わない」という割り切りで常に固定値(1とか)を指定しておく手もないわけではない。
30
+
31
+
32
+
33
+ ということだそうです。
34
+
35
+ exceptionはこういうことでしょうか。
36
+
37
+
38
+
39
+ > ファイル等に書き込んだ時と そこから読み込んだ時でserialVersionUIDの値が異なる場合、読み込み時点でInvalidClassExceptionが発生する。
40
+
41
+
42
+
43
+
44
+
45
+ > セッションをDBに詰め込んでそれをデシリアライズしたときに問題が起きないかのチェック
46
+
47
+
48
+
49
+ 私の知識不足で理解できていないのですが、上のサイトが参考になると思います。