回答編集履歴

4

fix dots?

2015/02/28 11:18

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
File without changes

3

add extra link

2015/02/28 11:18

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -1,6 +1,8 @@
1
1
  > javaでnullチェックを行うメリットとはなんでしょうか?
2
2
 
3
3
  どちらかといえば「Javaではnullチェックをしなければならない」です。nullチェックなしでメソッド呼び出しを行うと、`NullPointerException`例外がスローされます。(メリットがあるからではなく、必要なので仕方なくチェックする。)
4
+
5
+ おまけ:[nullを使うのはやめよう](http://qiita.com/Amothic/items/525e9d3a2a8f6e7f3f7e)
4
6
 
5
7
 
6
8
 

2

refine

2015/02/25 08:23

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -1,18 +1,18 @@
1
1
  > javaでnullチェックを行うメリットとはなんでしょうか?
2
2
 
3
- どちらかといえば「Javaではnullチェックをしなければならない」という感じです。nullチェックなしでメソッド呼び出しを行うと、`NullPointerException`例外がスローされます。(メリットがあるからではなく、必要なので仕方なくチェックする。)
3
+ どちらかといえば「Javaではnullチェックをしなければならない」です。nullチェックなしでメソッド呼び出しを行うと、`NullPointerException`例外がスローされます。(メリットがあるからではなく、必要なので仕方なくチェックする。)
4
4
 
5
5
 
6
6
 
7
7
  ```
8
8
 
9
- List r = getAwesomeData();
9
+ List result = getAwesomeData();
10
10
 
11
- // メソッドの戻り値有効なリスかもしれないしnullもしれない
11
+ // メソッド仕様ドキュメンを読まないとわない
12
12
 
13
- // どのようメソッド仕様なのはドキュメントを読まないとわない
13
+ // 戻り値は有効リストもしれないしnullもしれない
14
14
 
15
- System.out.println("size=" + r.size()); // nullの場合はNullPointerException発生!
15
+ System.out.println("size=" + result.size()); // nullの場合はNullPointerException発生!
16
16
 
17
17
  ```
18
18
 
@@ -26,17 +26,17 @@
26
26
 
27
27
  ```
28
28
 
29
- Optional<List> r = getAwesomeData();
29
+ Optional<List> result = getAwesomeData();
30
30
 
31
- // 戻り値は「無効値かもしれないリスト型」とはっきりわかる
31
+ //ソース上で戻り値は「無効値かもしれないリスト型」とわかる
32
32
 
33
33
 
34
34
 
35
- // r.size();とは呼び出せない(コンパイルエラー)
35
+ // result.size();とは呼び出せない(コンパイルエラー)
36
36
 
37
37
  // 有効なリストならその要素数を表示する、無効値ならなにもしない
38
38
 
39
- r.ifPresent(x -> { System.out.println("size=" + x.size()); });
39
+ result.ifPresent(list -> { System.out.println("size=" + list.size()); });
40
40
 
41
41
  ```
42
42
 

1

refine

2015/02/25 04:53

投稿

yohhoy
yohhoy

スコア6191

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  // どのようなメソッド仕様なのかはドキュメントを読まないとわからない
14
14
 
15
- int n = r.size(); // nullの場合はNullPointerException発生!
15
+ System.out.println("size=" + r.size()); // nullの場合はNullPointerException発生!
16
16
 
17
17
  ```
18
18
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  > またjava8で追加されたoptional型、nullチェックを強制するとはどういう意味なんでしょうか?
22
22
 
23
- Optional型、正確には`java.util.Optional<T>`クラスは、ソースコード上で「中身が空(empty)かもしれない変数」を明確にし、「プログラマにチェックを忘れない/忘れさせない」ための仕組みです。特にメソッド戻り値型で使うと効果的です。
23
+ Optional型、正確には`java.util.Optional<T>`クラスは、ソースコード上で「中身が空(empty)かもしれない変数」を明確にし、「プログラマにチェック処理を忘れさせない」ための仕組みです。特にメソッド戻り値型に利用すると効果的です。
24
24
 
25
25
 
26
26
 
@@ -34,9 +34,9 @@
34
34
 
35
35
  // r.size();とは呼び出せない(コンパイルエラー)
36
36
 
37
- // 有効なリストならその要素数を、無効値ならば0を取得する
37
+ // 有効なリストならその要素数を表示する、無効値ならなにもしない
38
38
 
39
- int n = s.isPresent() ? s.get().size() : 0;
39
+ r.ifPresent(x -> { System.out.println("size=" + x.size()); });
40
40
 
41
41
  ```
42
42
 
@@ -48,4 +48,6 @@
48
48
 
49
49
  - [Java8でのプログラムの構造を変えるOptional、ただしモナドではない](http://d.hatena.ne.jp/nowokay/20130524)
50
50
 
51
+ - [Optional 使い方編](http://www.javazuki.com/articles/javase/optional-usage.html)
51
52
 
53
+