回答編集履歴

3

内部もunmodifiableに

2016/07/09 06:05

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
  .of(table_)
34
34
 
35
- .map(row -> Arrays.asList(row))
35
+ .map(row -> Collections.unmodifiableList(Arrays.asList(row)))
36
36
 
37
37
  .collect(Collectors.toList())
38
38
 

2

誤用

2016/07/09 06:05

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- 【A】 [java.util.Collections.unmodifiableList](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Collections.html#unmodifiableList-java.util.List-)メソッドで,イミュータブルなリストは作れるそうです.プリミティブの配列は無理なのでリストで妥協してください.また,そのまま何も考えずに書いてしまうとメソッドを呼び出すたびに配列が作られてしまって意味が無いので,**変更を加えたあとの1回目の呼び出しのみ**`Collections.unmodifiableList()`で生成するようにし,2回目以降はメンバ変数に保存しておいたものをreturnすればよいでしょう.変更を加えた時に`tableChanged_`の値も変更するようにしてください.
17
+ 【A】 [java.util.Collections.unmodifiableList](https://docs.oracle.com/javase/jp/8/docs/api/java/util/Collections.html#unmodifiableList-java.util.List-)メソッドで,イミュータブルなリストは作れるそうです.プリミティブの配列は無理なのでリストで妥協してください.また,そのまま何も考えずに書いてしまうとメソッドを呼び出すたびにリストが作られてしまって意味が無いので,**変更を加えたあとの1回目の呼び出しのみ**`Collections.unmodifiableList()`で生成するようにし,2回目以降はメンバ変数に保存しておいたものをreturnすればよいでしょう.変更を加えた時に`tableChanged_`の値も変更するようにしてください.
18
18
 
19
19
 
20
20
 

1

訂正

2016/07/09 06:03

投稿

mpyw
mpyw

スコア5223

test CHANGED
@@ -46,10 +46,6 @@
46
46
 
47
47
  }
48
48
 
49
-
50
-
51
- return Collections.unmodifiableList(Arrays.asList(array));
52
-
53
49
  ```
54
50
 
55
51